it-roy-ru.com

как разбить строку на строку и целое число в Java

У меня есть String a="abcd1234", и я хочу разделить это на String b="abcd" и Int c=1234 Этот код разделения должен применяться для всех королей ввода, таких как ab123456 и acff432 и т.д. Как разделить этот вид строк. Является ли это возможным?

7
karthi

Вы можете попытаться разбить регулярное выражение типа (?<=\D)(?=\d). Попробуй это:

String str = "abcd1234";
String[] part = str.split("(?<=\\D)(?=\\d)");
System.out.println(part[0]);
System.out.println(part[1]);

будет выводить

abcd
1234

Вы можете проанализировать цифру String в Integer с помощью Integer.parseInt(part[1]).

16
ConcurrentHashMap

Вы можете сделать следующее:

  1. Разделить регулярным выражением типа split("(?=\\d)(?<!\\d)")
  2. У вас есть массив строк с этим, и вам нужно только разобрать его.
3
Javier Diaz

Используйте регулярное выражение:

Pattern p = Pattern.compile("([a-z]+)([0-9]+)");
Matcher m = p.matcher(string);
if (!m.find())
{ 
  // handle bad string
}
String s = m.group(1);
int i = Integer.parseInt(m.group(2));

Я не скомпилировал это, но вы должны понять.

2
SimonC

Используйте регулярное выражение "[^ A-Z0-9] + | (? <= [AZ]) (? = [0-9]) | (? <= [0-9]) (? = [AZ]) " чтобы разделить жало по алфавиту и цифрам.

например, 

String str = "ABC123DEF456";

Тогда вывод с использованием этого регулярного выражения будет:

АВС 123 DEF 456

Для полного кода, пожалуйста, посетите следующий URL:

http://www.zerotoherojava.com/split-string-by-characters-and-numbers/

0
Mohit Tyagi

Решение грубой силы.

String a = "abcd1234";
int i;
for(i = 0; i < a.length(); i++){
    char c = a.charAt(i);
    if( '0' <= c && c <= '9' )
        break;
}
String alphaPart = a.substring(0, i);
String numberPart = a.substring(i);
0
johnchen902