字符串在行尾获取文本

时间:2014-12-12 18:02:17

标签: java regex string substring bufferedreader

我有一个.txt文件,其中包含如下文字:

blah blah blah size: 80

blah blah blah blah size: 150

Aka有一些文字,然后是size:spaceintnew line,重复......现在,我需要获取整数并存储它变量。我使用BufferedReader逐行读取文本,一切正常,但是,只是因为整数的长度变化,我不能告诉你:

String x = line.substring(line.indexOf("size") + 6, line.indexOf("size") + 8)

因为如果大小有3位数,它只会获得前两位数。有什么建议?

5 个答案:

答案 0 :(得分:2)

如何使用最后一个空格的位置来确定子串的位置?

String s = line.substring(line.lastIndexOf(' ')+1);

答案 1 :(得分:1)

您可以使用String#substring(beginIndex)方法,该方法将从指定索引处开始子字符串,直到字符串结束:

String x = line.substring(line.indexOf("size") + 6);

答案 2 :(得分:1)

您还可以split字符串并访问最后一个元素

String[] split = s.split(":");
System.out.println(split[1].trim());
//                       ^-this is just an example, as an exercise try 
//                         to figure out index of last element yourself

答案 3 :(得分:1)

你可以试试正则表达式,下面的表达式得到数字组:

// can run in a for loop for each line
String regEx = ".*size:\s+(\d+)";
Pattern pattern = Pattern.compile(regEx);
Matcher matcher = pattern.matcher(line); // line to match
if (matcher.matches()) {
    String sizeVal = matcher.group(1);
}

答案 4 :(得分:0)

获取冒号后的子字符串

String x = line.substring(line.indexOf(":") + 2);