Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从字符串中提取字符和整数_Java_String - Fatal编程技术网

Java 从字符串中提取字符和整数

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

我有这个字符串p=“V755D888B154”,我想把它拆分成这个表单

  • 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之间,这真的很有效。它像我想要的那样将字符串和数字分开。谢谢你,也非常感谢和尊重其他答案!我非常尊重你在这里所做的努力,我们这些新手:)