2015-10-20 116 views
0

如何用數字分割字符串? 如果我有「20 40」進入,我該如何分割 它,所以我得到20,40?帶數字的Java分割字符串

int t = Integer.parseInt(x); 
    int str = t; 
    String[] splited = str.split("\\s+"); 

我的代碼。

+2

'String.split'它不會爲一個int工作,所以你會想這樣做也許'的String [] = NUM​​S x.split( 「\\ S +」); '我假設'x'是由空格劃分的nums的String?看@Juned Ashan回答 – 3kings

回答

1

你需要將其轉換爲字符串值,然後再拆,也許是這樣的:

String[] splited = String.valueOf(str).split("\\s+"); 

好像你正在閱讀的字符串數量,並試圖在這裏分裂之前將其轉換爲整數:

int t = Integer.parseInt(x); 

所以實際上你可以分割你的變量x並獲得indiviudal int類型,它像這樣:

String[] splited = x.split("\\s+"); 
for(String num:splited) { 
    int intVal = Integer.valueOf(num); 
} 
+1

'str'是一個'int'。你的解決方案將如何返回除'new String [] {String.valueOf(str)}'之外的東西? – brimborium

+0

@brimborium String.valueOf()將返回int的字符串,並且split將返回String數組.... –

+1

如果將一個'int'轉換爲'String',則不需要分割,因爲它只是一個單個整數,將永遠不會有空間... – brimborium

2

如果你試圖解析包含空格分隔的整數令牌,爲int陣列的字符串,下面的工作:

String input = "20 40"; 
String[] tokens = input.split(" "); 
int[] numbers = new int[tokens.length]; 

for (int i = 0; i < tokens.length; i++) { 
    numbers[i] = Integer.parseInt(tokens[i].trim()); 
} 

你也可以做到這一點的一個班輪通過Iterables從驚人Google Guava librarySplitter公用事業:

Integer[] numbers = Iterables.toArray(Iterables.transform(
     Splitter.on(' ').trimResults().split(input), 
      new Function<String, Integer>() { 

       @Override 
       public Integer apply(String token) { 
        return Integer.parseInt(token); 
       } 
      }), Integer.class);