在Java中正确地从字符串中剪切信息

在Java中正确地从字符串中剪切信息,java,Java,我正在从一个.txt文件中读取一个java字符串,上面写着: E12W1 (我把它放在一个字符串变量中) 现在我想把信息分成3个变量: v1 = 1 v2 = 2 w = 1 问题是,在示例中,数字可能会占用更多字节: E12204 W1 如何轻松地将第二、第三和第四个单词分成不同的变量?使用: 这个问题有很多解决方案。请访问查看所有可满足您需求的方法 我不会向您展示完整的解决方案,但我会尽力指导您 如果模式是固定的,您可以轻松编写一个方法,对字符串进行排序,并在循环中分配第二、第三和第四个变

我正在从一个.txt文件中读取一个java字符串,上面写着:

E12W1 (我把它放在一个字符串变量中) 现在我想把信息分成3个变量:

v1 = 1
v2 = 2
w = 1
问题是,在示例中,数字可能会占用更多字节:

E12204 W1 如何轻松地将第二、第三和第四个单词分成不同的变量?

使用:


这个问题有很多解决方案。请访问查看所有可满足您需求的方法

我不会向您展示完整的解决方案,但我会尽力指导您

如果模式是固定的,您可以轻松编写一个方法,对字符串进行排序,并在循环中分配第二、第三和第四个变量

您还可以构建一个正则表达式,为您提取所需字段,例如
\d+\s+\d+\s+\w\d+

,如果

E             12            204           W1
<token><space><token><space><token><space><token>
0              1            2             3
E12204W1
0              1            2             3
是您的格式,然后您可以使用
“”
仅使用字符串并获取索引为1和2的元素,从索引3中的元素中删除前导的
W

    String src = "E 12 204 W1";
    String[] numbers = src.split("\\D+");
    int v1 = Integer.parseInt(numbers[1]);
    int v2 = Integer.parseInt(numbers[2]);
    int w = Integer.parseInt(numbers[3]);

此特定版本的
split
将删除所有不是数字的内容。第一个元素(
numbers[0]
)将是一个空字符串,因此您可以忽略它。其他的是数字,只有数字,因此您可以安全地将它们解析为整数(除非您认为有可能有人输入一个大数字,例如
98798765465498798798754
,在这种情况下,您将得到一个异常,您应该捕获并处理它)。

我使用了split命令,它在一秒钟内解决了这个问题,非常感谢!!我如何构建和使用正则表达式来只读数字并转储“W”?@Eran如果它有帮助,请将其标记为答案感谢您的帮助!你解决了!
    String src = "E 12 204 W1";
    String[] numbers = src.split("\\D+");
    int v1 = Integer.parseInt(numbers[1]);
    int v2 = Integer.parseInt(numbers[2]);
    int w = Integer.parseInt(numbers[3]);