我有一个字符串包含字符和int我试图单独存储它,比如 - List<String>
中的所有字符和List<Integer>
中的所有数字以及任何其他正确的方式来执行此操作而不使用NumberFormatException
我的字符串是 -
String s="asdjd7gd7fghdfg78895983745hkg98353j56li67hj595j595695g596496890";
答案 0 :(得分:3)
正如TheLostMind所说,你可以利用replaceAll()
和一些正则表达式来区分String
的数字和非数字字符:
String s="asdjd7gd7fghdfg78895983745hkg98353j56li67hj595j595695g596496890";
String digits = s.replaceAll("[a-z]", "");
String nonDigits = s.replaceAll("[0-9]", "");
从那里开始,以任何你喜欢的方式存储digits
和nonDigits
都是非常简单的。
答案 1 :(得分: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,7,8,8,9,5,9,8,3,7,5,5,9,8,3,5, 3,5,6,7,7,5,9,5,5,9,5,6,9,5,5,9,6,4,9,6,8,9,0,