我有一個字符串包含字符和int我試圖單獨存儲它,像 - 所有字符在List<String>
和所有數字List<Integer>
任何其他正確的方法來做到這一點不使用NumberFormatException的有沒有什麼辦法區分字符和數字字符串
我的字符串是 -
String s="asdjd7gd7fghdfg78895983745hkg98353j56li67hj595j595695g596496890";
我有一個字符串包含字符和int我試圖單獨存儲它,像 - 所有字符在List<String>
和所有數字List<Integer>
任何其他正確的方法來做到這一點不使用NumberFormatException的有沒有什麼辦法區分字符和數字字符串
我的字符串是 -
String s="asdjd7gd7fghdfg78895983745hkg98353j56li67hj595j595695g596496890";
正如TheLostMind說,你可以利用replaceAll()
一些正則表達式從String
分離數字和非數字字符:
String s="asdjd7gd7fghdfg78895983745hkg98353j56li67hj595j595695g596496890";
String digits = s.replaceAll("[a-z]", "");
String nonDigits = s.replaceAll("[0-9]", "");
從那裏,以任何你想要的方式存儲digits
和nonDigits
是非常簡單的。
試一試,
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]
是的,你可以用'replaceAll()'或循環使用正則表達式並檢查每個字符的ASCII值 – TheLostMind
爲了將來的參考,數字_is_是一個字符,所以你真的不能將「字符」與「數字」。您可以將數字與數字分開,也可以將數字與數字分開。 – ajb