当前位置: 首页 > 知识库问答 >
问题:

通过扫描仪计数字符串

聂建茗
2023-03-14

我创建了一个简单的扫描器,用于计算中的字符串数。txt文件。每个字符串位于下一行。它算错了,每次它给我数字297,甚至有超过20000个字符串。这个txt文件是由我编写的另一个程序创建的,它从网站获取链接,并使用FileWriter和BufferedWriter将其保存到。txt文件。可能有什么问题?

public class Counter {

public static void main(String[] args) throws FileNotFoundException {

    Scanner scanner = new Scanner(new File("/Users/myName/Desktop/test.txt"));
    String string = scanner.next();
    int count = 0;

    while (scanner.hasNextLine()) {
        string = scanner.next();
        count++;
        System.out.println(count);
    }           
 }
}

编辑:字符串示例:

yahoo.com
google.com
etc.

共有3个答案

文凯康
2023-03-14

尝试以下操作:

public class Counter {

public static void main(String[] args) throws FileNotFoundException {

    Scanner scanner = new Scanner(new File("/Users/myName/Desktop/test.txt"));
    int count = 0;

    while (scanner.hasNextLine()) {
        scanner.nextLine();
        count++;
        System.out.println(count);
    }           
 }
}

你得到了什么答案?

姬存
2023-03-14

试试这个,使用nextLine和解析可以更准确

public class Counter {

    public static void main(String[] args) throws FileNotFoundException {

        Scanner scanner = new Scanner(new File("/Users/myName/Desktop/test.txt"));
        String string = scanner.next();
        int count = 0;

        while (scanner.hasNextLine()) {
            string = scanner.nextLine();
            count += string.split(" ").length;
            System.out.println(count);
        }           
     }
    }
漆雕稳
2023-03-14

尝试以下操作以测试最后一个字符串是什么:

public class Counter {

    public static void main(String[] args) throws FileNotFoundException {

        Scanner scanner = new Scanner(new File("/Users/myName/Desktop/test.txt"));
        int count = 0;

        String string;
        while (scanner.hasNextLine()) {
            string = scanner.nextLine();
            count++;
        }
        System.out.println(string);
        System.out.println(count);  
   }
}
 类似资料:
  • 我正试图用Java中的扫描器将一个字符串分成另外两个字符串。好像不起作用。我只能通过谷歌找到扫描仪用来读取控制台输入的例子。我从扫描仪的手册中找出了我做事情的方式,我不确定我错了什么。 第一个和第二个是空白的,我不知道为什么。

  • 我试图从用户那里得到2个整数。这是我的代码的相关部分: 起初,它抛出一个,所以我使用了。现在,它只需跳过扫描器并立即调用。

  • 任何人都可以帮我解决这个问题。我接受三个输入:整数、双精度和字符串,但Scanner类不接受字符串值

  • 我制作了一个简单的程序,根据公式中的3个数字计算增量。但是,小数点后的分数和数字(如3.33、3/4)有问题。如果我将其替换为任何字母,则会出现错误: 线程“main”java中出现异常。util。java上的InputMismatchException。base/java。util。扫描仪。throwFor(Scanner.java:939)访问java。base/java。util。扫描仪。下

  • 问题内容: 我的Java作业有问题。我遇到了意外的异常,特别是: java.util.NoSuchElementException:找不到行 我正在使用,该程序不断读取任何内容,并重复“无效格式”异常文本。如果输入正确的值,则第一部分通过,然后该部分立即进入此异常。如果输入的值不正确,则它将开始循环异常。 这是我的代码: 问题答案: 您关闭了多个库,这些库关闭了底层库,因此另一个库将不再从同一库和

  • 问题内容: 使用Scanner类中的useDelimiter时遇到一些问题。 如果我有这个输入 美国广播公司 输出将是 AB 然后等到我键入另一个“-”以打印出最后一个字符 但是,如果我没有用户输入数据,而是将字符串插入到Scanner中,则代码将起作用。原因是什么?如何解决?我不想使用StringTokenzier 问题答案: 如果没有等待您输入另一个,则将错误地假定您已完成输入。 我的意思是,