如何在java中将字符串拆分为字符串和整数

我有String a="abcd1234" ,我想把它分成String b="abcd"Int c=1234这个分割代码应该适用于所有输入王,如ab123456和acff432等。 如何拆分这种字符串。 可能吗?

您可以尝试拆分正则表达式,如(?<=\D)(?=\d) 。 试试这个:

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

将输出

 abcd 1234 

您可以使用Integer.parseInt(part[1])将数字String解析为Integer。

你可以做下一个:

  1. 用像split("(?=\\d)(?这样的正则表达式split("(?=\\d)(?
  2. 你有一个字符串数组,你只需要解析它。

使用正则表达式:

 Pattern p = Pattern.compile("([az]+)([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)); 

我没有编译这个,但你应该明白这个想法。

蛮力解决方案。

 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); 

使用正则表达式“[^ A-Z0-9] + |(?<= [AZ])(?= [0-9])|(?<= [0-9])(?= [AZ])”来用字母和数字分开刺痛。

例如

 String str = "ABC123DEF456"; 

那么使用这个正则表达式的输出将是:

ABC 123 DEF 456

有关完整代码,请访问以下url:

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

 public static void main(String... s) throws Exception { Pattern VALID_PATTERN = Pattern.compile("([A-Za-z])+|[0-9]*"); List chunks = new ArrayList(); Matcher matcher = VALID_PATTERN.matcher("ab1458"); while (matcher.find()) { chunks.add( matcher.group() ); } }