извлечь числа из строки Java - PullRequest
0 голосов
/ 15 мая 2018

Я пытаюсь извлечь числа из следующей строки:

(1234-5869)|990-9797

Я хочу, чтобы все числа присутствовали в этой строке, например

1234
5869
990
9797 

Ответы [ 3 ]

0 голосов
/ 15 мая 2018

Используйте replaceAll.

String str = "(1234-5869)|990-9797";

System.out.println(str.replaceAll("\\D", " ")); // " 1234 5869  990 9797"

Чтобы получить их в массив:

String[] arr = str.split("\\D");

System.out.println(Arrays.toString(arr)); // [, 1234, 5869, , 990, 9797]

Затем вы можете превратить их в строку с циклом и StringBuilder или чем-то подобными обрезать все пустые значения.

0 голосов
/ 18 мая 2018

в вашем случае вам не нужно никаких регулярных выражений. Вам нужно разделить вашу строку. посмотрите на эту тему: Как разбить строку в Java

или, если вы хотите сделать это без разделения, вы можете заменить весь спектральный символ на пустое место, а затем использовать stringTokenizer следующим образом:

String str = "(1234-5869)|990-9797";
str = str.replaceAll("\\D", " ")); // " 1234 5869  990 9797"

StringTokenizer st = new StringTokenizer(str);
while (st.hasMoreTokens()) {
     System.out.println(st.nextToken());
}

ваш ответ появится с желаемой презентацией

0 голосов
/ 15 мая 2018
  • результат ==> Строка

    String string="(1234-5869)|990-9797";
    String onlyNumber= string.replaceAll("[^0-9]", "");
    System.out.println("result==>"onlyNumber);
    
  • результат ==> массив

    String string="(1234-5869)|990-9797";
    String normalizedString= string.replaceAll("[^0-9]", ",");
    System.out.println(normalizedString);
    StringTokenizer st = new StringTokenizer(normalizedString, ",");
    List<String> tabNumber= new ArrayList<String>();
    while (st.hasMoreElements()) {
        tabNumber.add((String) st.nextElement());
    }
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...