Java围绕数字进行拆分
我有一个java字符串,如:Java围绕数字进行拆分,java,regex,string,Java,Regex,String,我有一个java字符串,如: "Corrected Acceleration 20130816_053116_RCS2_21 GNS Science" 我希望得到数字序列的最后一部分。它是最后一个下划线后面的数字 在这种情况下: 21 还有更多的例子 "Corrected Acceleration 20130346_053116_RCS2_15 GNS Science" 想要15 "Corrected Acceleration 20130346_053116_RCS2_13 GNS
"Corrected Acceleration 20130816_053116_RCS2_21 GNS Science"
我希望得到数字序列的最后一部分。它是最后一个下划线后面的数字
在这种情况下:
21
还有更多的例子
"Corrected Acceleration 20130346_053116_RCS2_15 GNS Science"
想要15
"Corrected Acceleration 20130346_053116_RCS2_13 GNS Science"
想要13
"Acceleration 123214_05312323_RCS2_40 GNS Science"
想要40
此格式将保持不变。变化将是不同的数字,并且前面的子字符串可能已更正
可能丢失
如何提取此文件?此文件应满足您的需要。请记住,我没有测试过thism,但逻辑应该是可行的:
String test = "Corrected Acceleration 20130816_053116_RCS2_21 GNS Science";
int lastUnderScore = test.lastIndexOf("_");
test = test.substring(lastUnderScore + 1);
int numLength = test.indexOf(" ");
int number = Integer.valueOf(test.substring(0, numLength));
您可以使用这样的正则表达式:
Pattern pattern = Pattern.compile("_[0-9]+ ");
Matcher matcher = pattern.matcher(text);
matcher.find();
// Note the + 1 and - 1 here to get rid of the leading underscore and the trailing space
int number = Integer.parseInt(text.subString(matcher.start() + 1, matcher.end() - 1));
您是否尝试写入正则表达式?您想要的总输出是多少?如果输入中有两个这样的数字呢?您可能需要更好地定义格式,格式是“由多个单词和空格组成的名称,然后是带下划线的数字…”还是“单词空间单词空间,然后是带下划线的数字…”这只是一个潜在的问题。您能否提供更多的示例字符串,以便我们了解哪些字符串会有所不同,哪些字符串会保持不变?