我得到了这个代码:
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
) - 唯一的对象 ID
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());
关于java - 打印数组时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19326624/