我正在做一个相对简单的文件读取,并且在从平面文件读取并存储在数组中的输入值和数据值之间的验证中遇到了异常。我已将错误跟踪到firstName字段。我将这个字段定义为等于array[0]While array[0]在我的输出中完美显示,fieldName不会...为空或为空。

这是我的代码,带有输出示例。

我不确定Stringbuilder是否最适合在这里使用?或深层String方法之一?我尝试过的所有方法似乎都无效。我想念的是什么...我知道这是显而易见的,我只是看不到。

public class DisplaySelectedNumbers
{
    public static void main(String[] args)
    {
        final String FN = "            ";
        final String LN = "            ";
        final String PHONE = "0000000000";
        String delimiter = ",";
        String s = FN + delimiter + LN + delimiter + PHONE + System.getProperty("line.separator");
        final int RECSIZE = s.length();
        String[] array = new String[3];
        Scanner kb = new Scanner(System.in);
        Path file = Paths.get("PhoneList.txt");
        String fName = JOptionPane.showInputDialog(null,"Enter first name to search");
        try
        {
            InputStream iStream=new BufferedInputStream(Files.newInputStream(file));
            BufferedReader reader=new BufferedReader(new InputStreamReader(iStream));
            while ((s = reader.readLine()) != null)
            {
                array = s.split(delimiter);
                String dispString = array[0]+" "+array[1]+" "+array[2]+"\n";
                System.out.println("array[0]="+array[0]);
                System.out.println("array[1]="+array[1]);
                System.out.println("array[2]="+array[2]);
                String firstName = array[0];
                System.out.println("firstName=");
                    s=reader.readLine();
            }
        }
        catch(Exception e)
        {
            System.out.println("Message: " + e);
        }
    }
}


array[0]=D
array[1]=JJ
array[2]=0123450000
firstName=
array[0]=B
array[1]=EE
array[2]=1111111111
firstName=
array[0]=D
array[1]=GG
array[2]=0033333333
firstName=

最佳答案

您忘记了实际打印firstName变量:

System.out.println("firstName=");


您需要:

System.out.println("firstName=" + firstName);

关于java - 将数组中的字符串复制到String变量时遇到问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10388172/

10-09 07:05