import javax.swing.JOptionPane;
import java.util.Scanner;
import java.io.FileReader;
import java.util.Arrays;
public class Part2{
public static void main(String[] args){
String[] holdPosition = new String[30];
String FileToBeSearched = JOptionPane.showInputDialog("Enter the file name to be searched: ");
String WordToBeSearched = JOptionPane.showInputDialog("Enter the word to be searched: ");
try{
FileReader searchedFile = new FileReader(FileToBeSearched);
Scanner scannedFile = new Scanner(searchedFile);
int i = 0;
String NumOfLines = "";
while(scannedFile.hasNext()){
String currentWord = scannedFile.next();
holdPosition[i] = currentWord;
if(currentWord.equalsIgnoreCase(WordToBeSearched)){
NumOfLines += holdPosition[i-1]+" "+currentWord+" "+scannedFile.next()+"\n";
Arrays.fill(holdPosition, null);
}
i++;
}
scannedFile.close();
JOptionPane.showMessageDialog(null,NumOfLines);
}catch(Exception except){}
System.exit(0);
}
}
这是我目前的代码。我无法弄清楚如何测试给定的字符串是否代表一个数字,我需要一个try块,我将文件中的每个字符串传递给Double.parseDouble()。我想返回文本文件中的每个数字,以及它之前和之后的字符串。
答案 0 :(得分:1)
我不确定我是否得到了您的问题,但可能是您只需要一个辅助方法,例如:
public static Double isDouble(String word) {
Double isDouble = null;
现在,您只需使用该方法检查从扫描仪接收的每个输入字符串即可。如果方法返回true,你知道,你得到一个数字。
如果您的代码也知道该号码,您可以稍微将其修改为:
.
...使用null作为调用者的指示,表明您的输入不是数字。 但是返回null并不是真正的上帝实践。
提示:我的代码只是写下来让你去;谨防拼写错误或其他微妙错误。它旨在让您自己解决问题。