Есть ли какой-либо способ отличить символы и цифры от строки

#java #android

#java #Android

Вопрос:

У меня есть одна строка, содержащая символы и int, я пытаюсь сохранить ее отдельно, например, — all character in List<String> и all digits List<Integer> любым другим правильным способом сделать это без использования NumberFormatException

Моя строка-

 String s="asdjd7gd7fghdfg78895983745hkg98353j56li67hj595j595695g596496890";
  

Комментарии:

1. Да, вы можете использовать регулярное выражение с replaceAll() или цикл и проверять значение ASCII каждого символа

2. Для дальнейшего использования цифра — это символ, поэтому вы действительно не можете отделить «символы» от «цифр». Вы можете отделять буквы от цифр или не цифры от цифр.

Ответ №1:

Как сказал TheLostMind, вы можете использовать replaceAll() с некоторым регулярным выражением для отделения цифр и нецифровых символов от этого String :

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

Оттуда довольно просто хранить digits и nonDigits любым удобным для вас способом.

Ответ №2:

Попробуйте это,

 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, 4, 5, 9, 8, 3, 5, 3, 5, 6, 6, 7, 5, 9, 5, 5, 9, 5, 6, 9, 5, 5, 9, 6, 4, 9, 6, 8, 9, 0]