Java 从字符串中提取字符和整数
我有这个字符串p=“V755D888B154”,我想把它拆分成这个表单Java 从字符串中提取字符和整数,java,string,Java,String,我有这个字符串p=“V755D888B154”,我想把它拆分成这个表单 五 755 D 888 B 154 我怎么做?提前感谢您可以使用。例如: String[] numbers = p.split("[a-zA-Z]+"); String[] letters = p.split("[0-9]+"); 数字或字母可以有空字符串,但您可以手动检查。如果您的字符串仅包含数字和字符串,则此代码段有效 String string = "V755D888B154"; Pattern
- 五
- 755
- D
- 888
- B
- 154
String[] numbers = p.split("[a-zA-Z]+");
String[] letters = p.split("[0-9]+");
数字
或字母
可以有空字符串,但您可以手动检查。如果您的字符串仅包含数字和字符串,则此代码段有效
String string = "V755D888B154";
Pattern p = Pattern.compile("\\d+|\\D+");
Matcher matcher = p.matcher(string);
while(matcher.find()) {
Integer i = null;
String s = null;
try {
i = Integer.parseInt(matcher.group());
}
catch (NumberFormatException nfe) {
s = matcher.group();
}
if (i != null) System.out.println("NUMBER: " + i);
if (s != null) System.out.println("STRING: " + s);
}
主要的失败是检查给定的字符串(matcher.group())是否由整数组成在你的评论中,你说字母是固定的,所以如果你只是想提取数字,你总是可以这样做。如果你认为这是个骗局,我就让你来决定
String p="V755D888B154";
Integer vPart = Integer.valueOf(p.substring(1,4));
Integer dPart = Integer.valueOf(p.substring(5,8));
Integer bPart = Integer.valueOf(p.substring(9,12));
System.out.println(bPart);
在100和999之间,你总是会有三个字母和三个数字吗?正则表达式可能是一种方法。如果字符位置是固定的,Java子字符串可能是另一个。字母是固定的,但数字不是固定的,是的,它们在100到9990之间,这真的很有效。它像我想要的那样将字符串和数字分开。谢谢你,也非常感谢和尊重其他答案!我非常尊重你在这里所做的努力,我们这些新手:)