Java 读入2个文件,转换为数组,然后打印所调用的内容

Java 读入2个文件,转换为数组,然后打印所调用的内容,java,file,Java,File,所以文件中的数据是女孩和男孩的名字。顺序是人气,对应的数字是该名称在某一年注册的次数。例如: 弗兰克678 威廉2号 等 每个文件中有1000个名称。我需要将每个文件加载到string[]和int[]中,然后当一个名称写入键盘时,程序必须遍历数组,找到名称,打印出字符串数组的索引(明显少一个)&在int[]中的数字。我现在的代码只返回了1000,1000。所以我不确定我会错在哪里 希望这有意义,这是一个统一的问题。这是我到目前为止的代码,抱歉,如果它看起来很原始,我还在学习:-) import

所以文件中的数据是女孩和男孩的名字。顺序是人气,对应的数字是该名称在某一年注册的次数。例如:

弗兰克678
威廉2号

每个文件中有1000个名称。我需要将每个文件加载到
string[]
int[]
中,然后当一个名称写入键盘时,程序必须遍历数组,找到名称,打印出字符串数组的索引(明显少一个)&在
int[]
中的数字。我现在的代码只返回了1000,1000。所以我不确定我会错在哪里 希望这有意义,这是一个统一的问题。这是我到目前为止的代码,抱歉,如果它看起来很原始,我还在学习:-)

import java.io.*;
导入java.util.*;
公开课H252{
静态final int ENTRIES=1000;//文件中的条目数
公共静态int-isInArray(字符串[]项,字符串目标){
整数=0;
对于(int i=0;i


您的问题是将字符串与
==

通过这种方法,您可以比较
引用
,因此它总是不同的,您可以达到最大值并返回
条目

要在java中比较字符串,请使用
.equals

在代码中替换

if (entries[i] == target)

它应该会起作用

编辑

另一个错误是

for (int i = 0; i < entries.length - 1; i++)
试试这个:

    public static int isInArray(String[] entries, String target) {
        int number = ENTRIES;
        for (int i = 0; i < entries.length; i++){  // You were not checking the last element of the array
            if (entries[i].equals(target)){  //if you want to compare String use method equals
                number = i + 1;
            }  // With the previous else comment you were almost certain to always get ENTRIES value returned all the time
        }
        return number;
    }
publicstatic int-isInArray(字符串[]项,字符串目标){
整数=条目;
对于(inti=0;i

我不知道它是否解决了所有问题,但这只是一个开始;)

你真正的问题是什么?我看到一个描述,但没有真正的问题。通常家庭作业的原则是,当你在某个特定的问题上遇到困难时,你可以这样做并提问。意思是:如果没有找到匹配的名字,那么打印1000。我想我没有直接的问题。这是不允许的吗?我现在的代码只返回了1000,1000。所以我不确定我错在哪里,我只想得到一些基本的建议。对不起,如果这是不允许的,我会删除…似乎你是一名学生。学习东西很重要。至少这是我的观点。最好是自己动手做。然后当你面对问题的时候。试着用标准工具(调试器)和你的知识来解决它。然后只与其他人分享问题以理解它并解决它。可能的重复嗯,它不是真正的重复,但你并没有问任何问题,你的代码(或“a”)存在问题。未来问题的一些提示-你应该在问题中包括测试输入、预期输出和实际输出。您最好先调试代码以了解问题的核心,然后发布一篇文章来突出显示这个问题。您肯定应该有一个问题,即使是“为什么我没有得到正确的输出?”。此外,请随意编辑问题;这样做是为了添加回答问题所需的额外信息,而不是对此使用注释。
number=i+1首次输入时,表示
number=1000+1与以前不同:
number=0+1。。。你解决了一个问题,又弄坏了另一个问题。number=0用于初始化number,但如果找不到目标,则作为条目出现,不是吗?如果我解决了你的问题,请考虑验证我的答案,以便其他人知道你的问题已解决。抱歉,它没有解决我的问题。我有一个“nullpointerexception”,所以我正在研究它的实际含义,以及如何修复它,也许可以尝试一下?无论如何,谢谢你的帮助。我真的很感激:-)ps:我还要验证一下吗
for (int i = 0; i < entries.length - 1; i++)
for (int i = 0; i < entries.length; i++)
    public static int isInArray(String[] entries, String target) {
        int number = ENTRIES;
        for (int i = 0; i < entries.length; i++){  // You were not checking the last element of the array
            if (entries[i].equals(target)){  //if you want to compare String use method equals
                number = i + 1;
            }  // With the previous else comment you were almost certain to always get ENTRIES value returned all the time
        }
        return number;
    }