我得到以下代码:
import java.util.*; import java.io.*; public class Oblig3A{ public static void main(String[]args){ OrdAnalyse O = new OrdAnalyse(); OrdAnalyse.analyseMet(); } } class OrdAnalyse { public static void analyseMet() { Scanner Inn = new Scanner(System.in); try { File skrivFil = new File("Opplysning.txt"); FileWriter fw= new FileWriter(skrivFil); BufferedWriter bw = new BufferedWriter(fw); Scanner lesFil = new Scanner("Alice.txt"); int i=0; int totalOrd=0; int antUnikeOrd=0; String[] ordArray = new String[5000]; int[] antallOrd = new int[5000]; while(lesFil.hasNext()) { String ord = lesFil.next().toLowerCase(); totalOrd++; boolean ut=false; int y=0; int z=0; for(i=0; i<ordArray.length; i++) { if (ord.equals(ordArray[i])) { antallOrd[i]++; ordFraFor=true; } } if(ordFraFor=false) { antUnikeOrd++; z=0; boolean ordOpptelling=false; while(ordOpptelling=false) { if(ordArray[z] == null) { ordArray[z] = ord; antallOrd[z]++; ordOpptelling=true; } z++; } } } System.out.println(ordArray); }catch (Exception e){ System.out.print(e); } } }
这应该在从文件中逐字读取单词时进行大量计数。但是,当我最终尝试将数组打印到终端时,只需检查它是否还可以,然后再开始使程序能够将其写入文本文件,它只会给出一个错误,内容为:[Ljava。 lang.String; @ 163de20但是我不知道在这种情况下如何以及在哪里检查错误?有什么帮助吗?
这不是错误…这是Object类的默认toString()实现返回的内容…
[Ljava.lang.String;@163de20
手段:
[L
java.lang.String
Object.toString()的代码
public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); }
您应该做的是使用正确的方法进行打印:
一个循环
StringBuilder sb = new StringBuilder();
for(String s: myArray) { sb.append(s); if(sb.length()>0) { sb.append(‘,’); } } System.println(s.toString());
Arrays.toString