Java:将字符串变量分解为字符串和整数变量?

问题描述:

我看到处处都可以找到解决方案。是否可以将字符串变量(如“A1”)分隔为字符串“A”和整数1变量?Java:将字符串变量分解为字符串和整数变量?

+2

除了到处找,你有没有尝试这个自己? – Reimeus 2013-02-20 21:24:10

+0

没有。我们不会做你的功课 – jorgeu 2013-02-20 21:28:00

+0

你的问题的答案是我自己尝试过,但作为一个相对较新的Java它是我没有遇到过的东西。我曾Google/Youtubed它,但无法找到一小部分的代码来帮助我在任何地方。这不是家庭作业,我太老了,没有作业,我只是热衷于学习语言的所有方面和所有可以实现的小技巧。 – 2013-03-27 16:26:53

从0开始解析,如果你看到非数字把它添加到一个StringBuffer,当你看到数字的StringBuffer的内容添加到List<String> strings;和同为位数List<String> numbers

如果字符串长度是严格一个字母而数量只有1位,您可以用String.split(""),但是一个更通用的解决方案,你可以使用regex

示例代码:

Matcher matcher = Pattern.compile("([a-zA-Z]+)(\\d+)").matcher("variable1121"); 
if (matcher.matches()) { 
    System.out.println(matcher.group(1) + " , " + matcher.group(2)); 
} 

输出:

variable , 1121 
+0

谢谢你已经完成了这个伎俩,整晚都在窃听我。 – 2013-02-20 21:43:25

如果你有一个字符串变量,如A1ABC123,你可以尝试:

String input = "A1"; 
String[] array = input.split("(?<=([a-zA-Z]++))"); 

String str = array[0]; 
int integer = Integer.parseInt(array[1]);