[Java Plasterer] Java Components 4:Java String,How to use them?

简介:

Reprint it anywhere u want.

Although the world is full of suffering , it is full also of the overcoming of it.  -Hellen Keller

 

Written In The Font

52. Suggestion:Use the String direct value for the assignment [推荐使用String直接量赋值]

54.  How to use the String , StringBuffer,StringBuilder [正确的使用String , StringBuffer,StringBuilder ]

55. Easy Time:Pay attention to the address of String [注意字符串的位子]

57. Complex string manipulation using regular expressions [复杂字符串操作使用正则表达式]

 

Suggestion:Use the String direct value for the assignment

Do u knw the String Object ? If u do some projects,u can see the String is used usually. A object is created by the key word : new.Therefore , we can create a String Obejct by :“ String str3 = new String(“Jeff”); ”.

Here, in my word,using the String direct value for the assignment is a better way.

for example:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class String01
{
     public static void main(String[] args)
     {
         String str1 = "Jeff";
         String str2 = "Jeff";
         String str3 = new String("Jeff");
         String str4 = str3.intern();
         
         boolean b1 = (str1 == str2);
         boolean b2 = (str1 == str3);
         boolean b3 = (str1 == str4);
         
         System.out.println("b1:"+b1+"  "+"b2:"+b2+"  "+"b3:"+b3+"  ");
     }
}
#outputs:
b1:true  b2:false  b3:true

b1:true b2:false
  u will think ,thats why they r different.
  As we all kno , the  operator“==”show whether two objects’address references are the same. Java designed a String Pool for storing all the String used to avoid there are to many String Objects created in a system. So  String str3 = new String(“Jeff”);  is creating a object in java heap memory not the String Pool.

intern() is a method of String. we can see from the jdk help doc.

?
1
2
3
4
5
public String intern()
Returns a canonical representation for the string object.
A pool of strings, initially empty, is maintained privately by the class String.
 
When the intern method is invoked, if the pool already contains a string equal to this String object as determined by the equals(Object) method, then the string from the pool is returned. Otherwise, this String object is added to the pool and a reference to this String object is returned.

  It follows that for any two strings s and t, s.intern() == t.intern() is true if and only if s.equals(t) is true.

  All in all, using  String str = “Jeff”;  u dont mind the Thread-security or Garbage collection mechanism.String is a nice man , treat it as a little boy pelasse.

image

 

How to use the String , StringBuffer,StringBuilder

Look at the pic:
image

String , StringBuffer ,StringBuilder implement the CharSequence.But they are different.

String
  String Object is a non-variable . it can not be changed and in the memory when u create it.

for example:

?
1
2
3
4
5
6
String str  = "abc";
     String str1 = str.substring(1);
         
     System.out.println("str1" + str1);
#outputs:
bc

  substring() method creates a new String Object and links the reference of it to str1. But when “str.substring(0)”,str1 and str  both link to the “abc”by the JVM.

StringBuffer StringBuilder

  they are very similar and they r variables of the sequence of characters.Only different, the StringBuffer has the methods which are synchronized where necessary. String buffers are safe for use by multiple threads. Different from String, if z refers to a string buffer object whose current contents are “start“, then the method call z.append("le") would cause the string buffer to contain “startle“, whereasz.insert(4, "le") would alter the string buffer to contain “starlet“.

All in all:

String can be used for the constants.

image

StringBuffer can be used for some operating methods in multithreaded environment.like XML analyze,the parameters of HTTP analyze etc.

StringBuilder can be used for HQL/SQL splice, JSON package etc.

image

 

Easy Time:Pay attention to the address of String

for example:

?
1
2
3
4
5
6
7
8
9
10
11
public static void main(String[] args)
{
     String str1 = 1 + 2 + "apples";
     String str2 = "apples" + 1 + 2;
     
     System.out.println(str1);
     System.out.println(str2);
}
#outputs:
3apples
apples12

what we can see from the result-values.why ? how ? they did.

Because the JAVA handling mechanism to the operator “+”. when there is a string in the expression, all the expression data will change itself to the String class.if the data is an Object, it will call its toString method.

So,String str1 = 1 + 2 + “apples” just like String str1 = (1 + 2) + “apples” .thats all.

 

Complex string manipulation using regular expressions

just reading!! the part , i will write in the future.

image

 

Write to Reader

Thank u!

相关文章
|
9天前
|
Java API 索引
Java基础—笔记—String篇
本文介绍了Java中的`String`类、包的管理和API文档的使用。包用于分类管理Java程序,同包下类无需导包,不同包需导入。使用API时,可按类名搜索、查看包、介绍、构造器和方法。方法命名能暗示其功能,注意参数和返回值。`String`创建有两种方式:双引号创建(常量池,共享)和构造器`new`(每次新建对象)。此外,列举了`String`的常用方法,如`length()`、`charAt()`、`equals()`、`substring()`等。
14 0
|
24天前
|
Java
【Java】如果一个集合中类型是String如何使用拉姆达表达式 进行Bigdecimal类型计算?
【Java】如果一个集合中类型是String如何使用拉姆达表达式 进行Bigdecimal类型计算?
25 0
|
1月前
|
Java
Java String split()方法详细教程
Java String split()方法详细教程
20 0
|
1月前
|
安全 Java
Java StringBuffer 和 StringBuilder 类
Java StringBuffer 和 StringBuilder 类
15 0
|
1月前
|
存储 缓存 安全
【Java】Java中String不可变性的底层实现
【Java】Java中String不可变性的底层实现
9 0
|
2月前
|
存储 XML 缓存
Java字符串内幕:String、StringBuffer和StringBuilder的奥秘
Java字符串内幕:String、StringBuffer和StringBuilder的奥秘
25 0
|
1月前
|
Java 索引
Java中String方法学习总结_kaic
Java中String方法学习总结_kaic
|
28天前
|
Java 索引
【Java】String类常用方法总结
【Java】String类常用方法总结
20 0
|
29天前
|
SQL Java
使用java中的String类操作复杂的字符串
使用java中的String类操作复杂的字符串
9 0
|
29天前
|
存储 Java 索引
Java String类
Java String类
12 0