当前位置: 首页 > 面试题库 >

在打印阵列上出现错误

鲍飞星
2023-03-14
问题内容

我得到以下代码:

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());

  • Arrays.toString



 类似资料:
  • 问题内容: 这可能是一个简单的修复程序,但我只是没有看到它。我想弄清楚,如何从主体正确打印我的方法?我需要获取,设置和返回方法吗?另外,在课堂上我的while循环是否甚至必要? 该程序会编译并一直运行到无穷大,因此我猜while循环是错误的。但是它也仅在每行上连续打印。 扩展main的类是不相关的,并且是项目的一部分。抱歉,如果张贴错误,谢谢您的帮助。 整个程序的输出类似于: 树皮,树皮。 喵喵。

  • 希望有人能帮我做这件事,我对Java很在行。我的问题是,当我打印数组时,会得到一些字符,我想打印数组中的点数。(请忽略不相关的代码,我甚至还没有完成)

  • 本文向大家介绍螺旋打印矩阵,包括了螺旋打印矩阵的使用技巧和注意事项,需要的朋友参考一下 该算法用于以螺旋方式打印数组元素。首先,从第一行开始,先打印全部内容,然后按照最后一列打印,然后再最后一行,依此类推,从而以螺旋方式打印元素。  该算法的时间复杂度为O(MN),M为行数,N为列数。 输入输出 算法 输入: 矩阵矩阵,行和列m和n。 输出:以螺旋方式打印矩阵的元素。 示例 输出结果

  • 我正在Plotly中绘制第一个示例之一: 但我有以下警告: 我认为这可能是安装问题。以下是Jupyter的一些版本 jupyter核心:4.6.3 jupyter笔记本:6.1.5 QT控制台:4.7.5 ipython:7.19.0 ipykernel:5.3.4 jupyter客户端:6.1.6 jupyter实验室:2.1.5 nbconvert:5.6.1 ipywidgets:7.5.1

  • 问题内容: 我打印出列表的内容,并得到以下输出: 这些奇怪的点是什么? 我用的是python 2.7.3 问题答案: 可能是您不小心建立了一个列表,其中包含对自身的引用(或此处有很多引用): 使用三个点使字符串表示不会在递归中淹没。您可以使用和运算符进行验证:

  • 我设置了一个语句,用于如果单词的字符要打印在不同字符或单词的顶部,那么(上方的循环)将重新启动,以确保单词被正确打印出来。 不过我有个问题。该程序似乎工作了大约50%,并打印出如下内容: 偶尔我会得到这个错误,而且只是这个错误(在这个特定的索引处): 编辑:以下是从文件中读入程序的内容: