簡體   English   中英

Java-從文件中讀取錯誤的字符

[英]Java - reading wrong characters from file

我想編寫一個程序,該程序逐個字符地從文件中讀取文本,並計算每個字符出現的頻率。

我有以下代碼:

import java.util.Scanner;
import java.io.*;

public class text {

    public static void frequency (char[] array, int k)
    {
        int ok=0;
        for (char i ='a'; i<='z'; i++)
        {
            ok=0;
            for (int j=0; j<k; j++)
                if (i==array[j])
                    ok++;
            if (ok!=0)
            {
                System.out.println (i + " appears for " + ok + " times");
            }
        }
    }

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

        Scanner in = new Scanner(new File("C:\\Users\\Diana\\workspace\\Text\\src\\FileInput"));
        char[] array = new char [100]; 
        int k=0;

        while (in.hasNext())
        {
            array[k] = in.next().charAt(k);
            k++;
        }
        for (int i=0; i<k; i++)
            System.out.print (array[i]);
        in.close();
        frequency (array, k);
    }
}

問題在於它不會從我的文件中讀取所有值。 例如,如果我有早安,它只會顯示Go 有什么想法我做錯了嗎?

看一下你的循環:

while (in.hasNext())
{
    array[k] = in.next().charAt(k);
    k++;
}

這一次讀取一個令牌 ,並從該令牌中獲取第k個字符。 因此,它從“早安”中檢索“ Good”( G )的字符0和“ Morning”( o )的字符1。

目前尚不清楚為什么你有k可言,要誠實-但如果你只是想文件讀入一個字符數組,它采用了一塊值得Reader ,而不是-或Files.readAllLines如果您使用的是Java 7或更高版本。 例如:

List<String> lines = Files.readAllLines(Paths.get("FileInput"));
StringBuilder builder = new StringBuilder();
for (String line : lines) {
    builder.append(line);
}
char[] array = builder.toString().toCharArray();

(這將跳過換行符,但這可能就是您想要的。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM