2016-10-13 58 views
-1

我有一個字符串包含字符和int我試圖單獨存儲它,像 - 所有字符在List<String>和所有數字List<Integer>任何其他正確的方法來做到這一點不使用NumberFormatException的有沒有什麼辦法區分字符和數字字符串

我的字符串是 -

String s="asdjd7gd7fghdfg78895983745hkg98353j56li67hj595j595695g596496890"; 
+1

是的,你可以用'replaceAll()'或循環使用正則表達式並檢查每個字符的ASCII值 – TheLostMind

+0

爲了將來的參考,數字_is_是一個字符,所以你真的不能將「字符」與「數字」。您可以將數字與數字分開,也可以將數字與數字分開。 – ajb

回答

3

正如TheLostMind說,你可以利用replaceAll()一些正則表達式從String分離數字和非數字字符:

String s="asdjd7gd7fghdfg78895983745hkg98353j56li67hj595j595695g596496890"; 
String digits = s.replaceAll("[a-z]", ""); 
String nonDigits = s.replaceAll("[0-9]", ""); 

從那裏,以任何你想要的方式存儲digitsnonDigits是非常簡單的。

1

試一試,

String s = "asdjd7gd7fghdfg78895983745hkg98353j56li67hj595j595695g596496890"; 

List<String> str = new ArrayList<String>(); 
List<Integer> in = new ArrayList<Integer>(); 
for (int i = 0; i < s.length(); i++) { 
    String kek = String.valueOf(s.charAt(i)); 
    if (Character.isDigit(s.charAt(i))) { 
     in.add(Integer.parseInt(kek)); 
    } else { 
     str.add(kek); 
    } 
} 
Log.e("String", str.toString()); 
Log.e("Integer", in.toString()); 

輸出:

字符串:[A,S,d,J,d,G,d,F,G,H,d,F ,g,h,k,g,j,l,i,h, j,j,g]

整數:[7,7,8,8,9,5,9,8,3 ,7,4,5,9,8,3,5, 3,5,6,6,7,5,9,5,5,9,5,6,9,5,5,9, 4,9,6,8,9,0]

相關問題