Java將一段逗號分割的字符串轉換成一個數組

今天在看面試題遇到這個問題,但是書上的解釋,總覺得看不太懂,幸好在網上找到一篇,很好的詮釋了這個問題,正則表達式確實好用,簡潔很多

*****************************************************************************************

String 類:
String 類代表字符串。Java 程序中的所有字符串字面值都作爲此類的實例實現。字符串是常量,它們的值在創建之後不能更改。字符串緩衝區支持可變的字符串。因爲 String 對象是不可變的,所以

可以共享。
String 類包括的方法可用於檢查序列的單個字符、比較字符串、搜索字符串、提取子字符串、創建字符串副本並將所有字符全部轉換爲大寫或小寫。Java 語言提供對字符串串聯符號("+")以及將其他

對象轉換爲字符串的特殊支持。字符串串聯是通過 StringBuilder(或 StringBuffer)類及其 append 方法實現的。字符串轉換是通過 toString 方法實現的,該方法由 Object 類定義,並可被 Java

中的所有類繼承。
String 類的split方法可以根據給定正則表達式的匹配拆分字符串,故而可以把字符串分離成單個字符的形式。
StringTokenizer 類:
string tokenizer 類允許應用程序將字符串分解爲標記。tokenization 方法比 StreamTokenizer 類所使用的方法更簡單。StringTokenizer 方法不區分標識符、數和帶引號的字符串,它們也不識別並

跳過註釋。可以在創建時指定,也可以根據每個標記來指定分隔符(分隔標記的字符)集。
StringTokenizer 的實例有兩種行爲方式,這取決於它在創建時使用的 returnDelims 標誌的值是 true 還是 false:
如果標誌爲 false,則分隔符字符用來分隔標記。標記是連續字符(不是分隔符)的最大序列。
如果標誌爲 true,則認爲那些分隔符字符本身即爲標記。因此標記要麼是一個分隔符字符,要麼是那些連續字符(不是分隔符)的最大序列。
StringTokenizer 對象在內部維護字符串中要被標記的當前位置。某些操作將此當前位置移至已處理的字符後。通過截取字符串的一個子串來返回標記,該字符串用於創建 StringTokenizer 對象。

//如何把一段逗號分割的字符串轉換成一個數組
package com.test.string;//構建自己的包
import java.util.StringTokenizer;//導入StringTokenizer 類,後面要用到此類來創建對象和此類的方法。
public class StrToArray{

   public static void main(String[] args) {
String str="a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z";
String[] strArray=null;
System.out.println("調用convertStrToArray結果:");
strArray = convertStrToArray(str);
printArray(strArray);

System.out.println("調用convertStrToArray2結果:");
       strArray = convertStrToArray2(str);
       printArray(strArray);
   }
   //使用String的split 方法  
   public static String[] convertStrToArray(String str){  
       String[] strArray = null;  
       strArray = str.split(","); //拆分字符爲"," ,然後把結果交給數組strArray
       return strArray;
   }  

   //使用StringTokenizer實現  
   //api說明:StringTokenizer 是出於兼容性的原因而被保留的遺留類  
   //(雖然在新代碼中並不鼓勵使用它)。建議所有尋求此功能的人使用  
   //String 的 split 方法或 java.util.regex 包  
   public static String[] convertStrToArray2(String str){
       StringTokenizer st = new StringTokenizer(str,",");//把","作爲分割標誌,然後把分割好的字符賦予StringTokenizer對象。
       String[] strArray = new String[st.countTokens()];//通過StringTokenizer 類的countTokens方法計算在生成異常之前可以調用此 tokenizer 的 nextToken 方法的次數。
       int i=0;
       while(st.hasMoreTokens()){//看看此 tokenizer 的字符串中是否還有更多的可用標記。
           strArray[i++] = st.nextToken();//返回此 string tokenizer 的下一個標記。
       }
       return strArray;
   }
   //輸出數組
   public static void printArray(String[] array){  
    for(int i=0;i<array.length;i++){
  System.out.print(array[i]);
  if(i==array.length-1){
   System.out.print("\n");
  }else{
   System.out.print(",");
  }
 }
   }

}

此類的用的雖然不是很多,方法簡單已掌握,但還是有必要去了解。


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