
[英]How would I go about using jsoup to parse a specific integer value from this HTML?
[英]How would I go about using an integer delimiter? (Java)
因此,我尝试使用扫描仪读取文件。 该文件包含两个镇的数据,并且它们之间的距离在每行上都遵循它们。 像这样:
埃布尔,圭拉,90岁
我试图让每个城镇的人,允许重复。 这是我到目前为止的内容:
// Create scanner for file for data
Scanner scanner = new Scanner(new File(file)).useDelimiter("(\\p{javaWhitespace}|\\.|,)+");
// First, count total number of elements in data set
int dataCount = 0;
while(scanner.hasNext())
{
System.out.print(scanner.next());
System.out.println();
dataCount++;
}
现在,程序将打印出每条信息,无论它是城镇名称还是整数值。 像这样:
bor
盖拉
90
如何做到这一点,所以每行都有这样的输出:
bor
盖拉
谢谢!
假设输入格式正确,只需将循环修改为:
while(scanner.hasNext())
{
System.out.print(scanner.next());
System.out.print(scanner.next());
System.out.println();
scanner.next();
dataCount += 3;
}
否则,如果没有很好地形成的输入,请与hasNext()
每前next()
调用,如果你需要打破循环出现。
尝试这种方式:
Scanner scanner = new Scanner(new File(file));
int dataCount = 0;
while(scanner.hasNext())
{
String[] line = scanner.nextLine().split(",");
for(String e : line) {
if (!e.matches("-?\\d+")) System.out.println(e);;
}
System.out.println();
dataCount++;
}
}
我们将逐行处理,将其拆分为数组,并使用正则表达式检查它是否为整数。
-? stays for negative sign, could have none or one
\\d+ stays for one or more digits
输入示例:
Ebor,Guyra,90
Warsaw,Paris,1000
输出:
Ebor
Guyra
Warsaw
Paris
我写了一个叫做intParsable的方法:
public static boolean intParsable(String str)
{
int n = -1;
try
{
n = Integer.parseInt(str);
}
catch(Exception e) {}
return n != -1;
}
然后在您的while循环中,我将有:
String input = scanner.next();
if(!intParsable(input))
{
System.out.print(input);
System.out.println();
dataCount++;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.