Java筆記整理——流程控制和字符串

2015年1月13日記


1、switch語句中表達式的值必須是整型、字符型或字符串類型;常量1~n也必須是整型、字符型或字符串類型。

2、foreach語句是for語句的特殊簡化版本,不能完全取代for語句,但任何foreach語句都可以改寫爲for語句版本。foreach不是一個關鍵字,習慣上將這種特殊的for語句格式稱爲foreach語句。foreach語句在遍歷數組等方面爲程序員提供了很大方便。其語法如下:
    for(元素變量x : 遍歷對象obj){
        引用了x的java語句;
   }
  int arr[] = {7, 10, 11, 12};
  for(int x:arr){
   System.out.println(x);
  }

3、字符串:可以通過如下語法格式來聲明字符串變量:String str = [null];

4、在Java語言中將字符串作爲對象來管理,因此可以像創建其他對象一樣來創建字符串對象。創建對象要使用類的構造方法。String類的常用構造方法如下:
1)String(char a[])
這是用一個字符數組a創建String對象
如:char a[] = {'g', 'o', 'o', 'd'};  String s = new String(a);
該用法等價於String s = new String("good");
2)String(char a[], int offset, int length)
提取字符數組a中的一部分創建一個字符串對象。參數offset表示開始截取字符串的位置,length表示截取字符串的長度。
如:char a[] = {'s', 't', 'u', 'd', 'e', 'n', 't'};  String s = new String(a, 2, 4);
等價於:String s = new String("uden");
3)String(char[] value)
該構造方法可分配一個新的String對象,使其表示字符數組參數中所有元素鏈接的結果。
如:char a[] = {'s', 't', 'u', 'd', 'e', 'n', 't'};  String s = new String(a);
等價於:String s = new String("student");
4)還可以通過字符串常量的引用賦值給一個字符串變量
如:String str1, str2;  str1 = "We are students";  str2 = "We are students";

5、字符串也可以同其他基本數據類型進行連接。如果將字符串同這些數據類型數據進行連接,會將這些數據直接轉換成字符串。
如:static String str1 = "你好";
       public static void main(String[] args){
            int m = 12;
           double n = 11.1;
           System.out.println(m + str1 + n);
      }
在這裏需要說明:在這裏m和n都不是字符串,當他們與字符串相連時會自動調用toString()方法,將其轉換成字符串形式,然後參與連接。
注意:只要“+”運算符的一個操作數是字符串,編譯器就會將另一個操作數轉換成字符串形式,所以應謹慎地將其他數據類型與字符串相連,以免出現意想不到的結果。

6、獲取字符串信息——獲取長度
使用String類的length()方法可以獲得聲明的字符串對象的長度。

7、獲取字符串信息——字符串查找
使用indexOf()與lastIndexOf()方法。
1)indexOf(String s)
該方法用於返回參數字符串s在指定字符串中首次出現的索引位置。若沒有檢索到字符串s,則返回-1。
如:String str = "We are students";  int size = str.indexOf("a");//size=3
2)lastIndexOf(String str)
該方法返回指定字符串最後一次出現的索引位置。若未檢索到字符串str,則返回-1。
如:String str = "We are students";  int size = str.indexOf("");//size = 15

8、獲取字符串信息——獲取指定索引位置的字符
使用charAt()方法可將指定索引處的字符返回
如:String str = "Hello Java";  char ch = str.charAt(2);//ch就是l

9、字符串操作——獲取子字符串(字符串截取)
1)QString substring(int beginIndex)
該語法返回的是從指定的索引位置開始截取直到該字符串結尾的子串
如:String str = "Hello World";  String substr = str.substring(3);//substr爲lo World
2)QString substring(int beginIndex, int endIndex)
該方法返回的是從字符串某一索引位置開始截取至某一索引位置結束的子串
如:String str = "Hello World";  String substr = str.substring(0, 3);//substr爲Hel

10、字符串操作——去除空格
使用trim()方法。如:str.trim();
該方法返回字符串的副本,忽略前導空格和尾部空格。
如:String str2 = " Hello Java ";  System.out.println(str2.trim());//結果爲Hello Java

11、字符串操作——字符串替換
replace()方法可實現將指定的字符或字符串替換成新的字符或字符串
String replace(char oldChar, char newChar);
如:String str = "address";  System.out.println(str.replace("a", "A"));//結果爲Address
說明:若要替換的字符oldChar在字符串中重複出現多次,replace()方法會將所有的oldChar都替換成newChar。

12、字符串操作——判斷字符串的開始與結尾
1)startsWith(String prefix)
該方法用於判斷當前字符串對象的前綴是否是參數指定的字符串
2)endsWith(String suffix)
該方法用於判斷當前字符串是否是以給定的子字符串結束

13、字符串操作——判斷字符串是否相等
1)equals()
如果兩個字符串具有相同的字符和長度,返回true
2)equalsIgnoreCase()
使用equals()方法對字符串進行比較時是區分大小寫的,而使用equalsIgnoreCase()方法是在忽略了大小寫的情況下比較兩個字符串是否相等,返回結果爲boolean類型

14、字符串操作——按字典順序比較兩個字符串
compareTo()
按字典順序比較兩個字符串,該比較基於字符串中各個字符的Unicode值,按字典順序將此String對象表示的字符序列與參數字符串所表示的字符序列進行比較。若此String對象在前,則返回負整數;在之後,返回正整數;否則返回0

15、字符串操作——字母大小寫轉換
使用toLowerCase()和toUpperCase()方法

16、字符串操作——字符串分割
1)split(String sign)
該方法可根據給定的分隔符對字符串進行拆分。
說明:沒有統一的對字符進行分割的符號。如果想定義多個分隔符,可使用符號“|”。如,“,|=”表示分隔符爲","和"|"。
2)split(String sign, int limit)
該方法可根據給定的分隔符對字符串進行拆分,並限定拆分的次數。

17、格式化字符串
String類的靜態format()方法用於創建格式化的字符串。format()的兩種重載形式如下:
1)format(String format, Object ... args)
該方法使用指定的格式字符串和參數返回一個格式化字符串,格式化後的新字符串使用本地默認的語言環境
2)format(Local l, String format, Object ... args)

18、字符串生成器
public class Frist {
 public static void main(String[] args)
 {
  String str = "";
  long startTime = System.currentTimeMillis();
  for(int i = 0; i < 100000; i++)
  {
   str += i;
  }
  long endTime = System.currentTimeMillis();
  System.out.println(endTime - startTime);
  StringBuilder strBuilder = new StringBuilder("");
  startTime = System.currentTimeMillis();
  for(int i = 0; i < 100000; i++)
  {
   strBuilder.append(i);
  }
  endTime = System.currentTimeMillis();
  System.out.println(endTime - startTime);
 }
}
輸出結果如下:
14539
16
以上程序說明了字符串生成器與字符串操作的效率問題。
如果在程序中頻繁的附加字符串,建議使用StringBuilder。新創建的StringBuilder對象初始容量是16個字符,可以自行指定初始長度。如果附加的字符超過可容納的長度,則StringBuilder對象將自動增加長度以容納被附加的字符。若要使用StringBuilder最後輸出字符串結果,可使用toString()方法。
1)append()方法
通過該方法的多個重載形式,可以實現接受任何類型的數據,如:int,boolean,char,String,double或者另一個字符串生成器
2)insert()方法
通過該方法的多個重載形式,可以實現接受任何類型的數據,如:int,boolean,char,String,double或者另一個字符串生成器
3)delete(int start, int end)方法
移除此序列的子字符串中的字符,該子字符串從start開始,一直到索引end-1處的字符,若不存在這種字符,則一直到序列尾部;若start等於end,則不發生任何更改。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章