我有两台扫描仪,可以从外部文本文件中扫描货币和重量。货币的第一台扫描仪和重量的第二台扫描仪。这里的问题是,只有顶部扫描仪工作,第二个扫描仪不提供任何输出。如果第一台扫描仪完成扫描并输出后,如何重置第二台扫描仪以从文件顶部开始读取。以下是2个扫描仪
货币扫描器
String sc[]= {myTextCount};
String value, currency;
for(String ssc : sc){
Scanner scan = new Scanner(ssc);
while (scan.hasNextLine()) {
value = scan.findInLine("\\d+(\\.\\d+)?");
currency = scan.next();//scan.next("\\w+");
try {
float f = Float.valueOf(value.trim()).floatValue();
for(int j = 0; j < currencyWords.length; j++) {
if ((currency).equals(currencyWords[j])) {
jTextArea2.append(f + currencyWords[j] + "-" +currencyFile + "\n");
currency = scan.next();//scan.next("\\w+");
}
}
}catch (NumberFormatException e){
//System.err.println("NumberFormatExceptionsssss: " + nfe.getMessage());
}
}
}
重量扫描仪
String s[]= {myTextCount};
String weight, unit;
for(String ss : s){
Scanner scanC = new Scanner(ss);
while (scanC.hasNextLine()) {
weight = scanC.findInLine("\\d+(\\.\\d+)?");
unit = scanC.next();//scan.next("\\w+");
try {
float f = Float.valueOf(weight.trim()).floatValue();
for(int j = 0; j < weightWords.length; j++) {
if ((unit).equals(weightWords[j])) {
jTextArea2.append(f + weightWords[j] + "-" +weightFile + "\n");
unit = scanC.next();//scan.next("\\w+");
}
}
}catch (NumberFormatException e){
//System.err.println("NumberFormatExceptionsssss: " + nfe.getMessage());
}
}
}
我尝试过使用break但仍然无效。仅第一个扫描仪运行,第二个扫描仪不运行。帮我展示如何重置扫描仪的算法
答案 0 :(得分:0)
我通过加入两个扫描仪解决了这个问题。
String s[]= {myTextCount};
String weight, unit;
for(String ss : s){
Scanner scanC = new Scanner(ss);
while (scanC.hasNextLine()) {
weight = scanC.findInLine("\\d+(\\.\\d+)?");
unit = scanC.next();//scan.next("\\w+");
try {
float f = Float.valueOf(weight.trim()).floatValue();
for(int j = 0; j < weightWords.length; j++) {
for(int g = 0; g < currencyWords.length; g++) {
if ((unit).equals(weightWords[j])) {
jTextArea2.append(f + weightWords[j] + "-" +weightFile + "\n");
unit = scanC.next();//scan.next("\\w+");
} scanC.reset();
if ((unit).equals(currencyWords[g])) {
jTextArea2.append(f + currencyWords[g] + "-" +currencyFile + "\n");
unit = scanC.next();//scan.next("\\w+");
}scanC.reset();
}
}
}catch (NumberFormatException e){
//System.err.println("NumberFormatExceptionsssss: " + nfe.getMessage());
}
} scanC.close();
}