从Java中的文本文件中查找字符串中的数字

时间:2016-11-07 15:31:25

标签: java data-conversion

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()。我想返回文本文件中的每个数字,以及它之前和之后的字符串。

1 个答案:

答案 0 :(得分:1)

我不确定我是否得到了您的问题,但可能是您只需要一个辅助方法,例如:

public static Double isDouble(String word) {
  Double isDouble = null;

现在,您只需使用该方法检查从扫描仪接收的每个输入字符串即可。如果方法返回true,你知道,你得到一个数字。

如果您的代码也知道该号码,您可以稍微将其修改为:

.

...使用null作为调用者的指示,表明您的输入不是数字。 但是返回null并不是真正的上帝实践。

提示:我的代码只是写下来让你去;谨防拼写错误或其他微妙错误。它旨在让您自己解决问题。