2014-02-20 45 views
0

我有一個字符串,「004-034556」,我想分成兩個字符串的字符串:拆分通過其他方式

string1 = "004" 
string2 = "034556" 

這意味着第一個字符串將之前包含字符「 - 」,第二個字符串將包含' - '後面的字符。我也想檢查一下字符串是否有' - '。如果沒有,我會拋出異常。我怎樣才能做到這一點?

現在一個實現這一目標是這樣...

public static String[] SplitUsingTokenizer(String Subject, String Delimiters) 
{ 
    StringTokenizer StrTkn = new StringTokenizer(Subject, Delimiters); 
    ArrayList<String> ArrLis = new ArrayList<String>(Subject.length()); 
    while(StrTkn.hasMoreTokens()) 
    { 
     ArrLis.add(StrTkn.nextToken()); 
    } 
    return ArrLis.toArray(new String[0]); 
} 
+1

['StringTokenizer'](http://docs.oracle.com/javase/7/docs/api/java /util/StringTokenizer.html)是一個遺留類。如果你閱讀它的文檔,它顯然會要求你使用'String'類的'split()'方法。一個簡單的'str.split(「 - 」)'會適合你。 – SudoRahul

+0

我建議使用帶小寫字母的變量名。 http://www.oracle.com/technetwork/java/javase/documentation/codeconventions-135099.html#367 –

回答

1

試試這個:

String[] spilited = abc.split("-"); 
if(spilited.size() == 0){ 
    throw new RuntimeException("String doesn't contain '-'); 
} 
0
String[] array = givenString.split("-"); 

,並檢查它,

if(givenString.contains("-")) return true; 
2

你可以這樣做這樣:

String str = "004-034556"; 

if (str.contains("-")) { // Check if str contains "-" 
    String strSplit[] = str.split("-"); 
} 
else { 
    // Throw exception 
} 

strSplit[0] ==> 004

strSplit[1] ==> 034556

0
public class SplitException extends Exception{ 
    ... 
    ... 
} 

public String[] customSplit(String str, String splitter) { 

    String[] splitted = str.split(splitter); 
    if (splitted.size() == 0) 
     throw new SplitException(); 
    return splitted; 
} 

try { 
    customSplit("004-034556", "-"); 
} 
catch(SplitException se) { 
    se.printStackTrace(); 
} 
相關問題