Java基本的程序设计结构(二)

(六)字符串
1.在这里需要指出的是它是一个对象,不是一个字符数组

2.他是不可变的,没有append()或reverse()

3.要用双引号,连接时用+

4.给出一些常用函数,相关的可查看API文档
toString();
int length() – number of chars
char charAt(int index) – char at given 0-based index
int indexOf(char c) – first occurrence of char, or -1
int indexOf(String s)
boolean equals(Object) – test if two strings have the same characters
boolean equalsIgnoreCase(Object) – as above, but ignoring case
String toLowerCase() – return a new String, lowercase
String substring(int begin, int end) – return a new String made of the begin..end-1 substring from the original

5.初始化
 s1 = new String(“This is some java String”);
 s1 = new String(“This is some java String”);

6.例子
String a = "hello";    // allocate 2 String objects
  String b = "there";
  String c = a;    // point to same String as a – fine

  int len = a.length();    // 5
  String d = a + " " + b;    // "hello there"
   
  int find = d.indexOf("there");    // find: 6
  String sub = d.substring(6, 11);    // extract: "there“

  sub == b;        // false (== compares pointers)
  sub.equals(b);    // true (a "deep" comparison)

String a = "hello";    // allocate 2 String objects
  String b = "there";
  String c = a;    // point to same String as a – fine

  int len = a.length();    // 5
  String d = a + " " + b;    // "hello there"
   
  int find = d.indexOf("there");    // find: 6
  String sub = d.substring(6, 11);    // extract: "there“

  sub == b;        // false (== compares pointers)
 
Use the equals method;
    s.equals(t) // returns true if the strings s and t are equal, false otherwise.
s and t can be string variables or string constants. "Hello".equals(command) // OK
To test if two strings are identical except for the upper/lowercase letter distinction
      “Hello".equalsIgnoreCase("hello")

7.比较时一般不用==
String greeting = "Hello";    
    if (greeting == "Hello") . . . // probably true
    if (greeting.substring(0, 4) == "Hell") . . . // probably false

8.StringBuffer
不同于String,
append() method- Lets you add characters to the end of a StringBuffer object

insert() method- Lets you add characters at a specified location within a StringBuffer object

setCharAt() method- Use to alter just one character in a StringBuffer

例子:
StringBuffer buff = new StringBuffer();
        for (int i=0; i<100; i++) {
            buff.append(<some thing>);
            // efficient append
        }
        String result = buff.toString();
        // make a String once done with appending

9.StringTokenizer
可以根据某些标记(token),来分割String
例子:
String testString = “one-two-three”;
StringTokenizer st = new StringTokenizer(testString,”-");
while (st.hasMoreTokens()) {
       String nextName = st.nextToken();
       System.out.println(nextName);
}
Result:
one
two
three