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