有没有办法区分字符串中的字符和数字

时间:2016-10-13 05:12:32

标签: java android

我有一个字符串包含字符和int我试图单独存储它,比如 - List<String>中的所有字符和List<Integer>中的所有数字以及任何其他正确的方式来执行此操作而不使用NumberFormatException

我的字符串是 -

String s="asdjd7gd7fghdfg78895983745hkg98353j56li67hj595j595695g596496890";

2 个答案:

答案 0 :(得分:3)

正如TheLostMind所说,你可以利用replaceAll()和一些正则表达式来区分String的数字和非数字字符:

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

从那里开始,以任何你喜欢的方式存储digitsnonDigits都是非常简单的。

答案 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,