我正在执行一个相对简单的文件读取,但我在验证输入值和从平面文件读取并存储在数组中的数据值之间遇到了异常。我已将错误追溯到 firstName
字段。我将此字段定义为等于 array[0]
。 虽然 array[0]
在我的输出中完美显示,但 fieldName
却没有……它要么是空白,要么是 null。
这是我的代码,带有输出示例。
我不确定 Stringbuilder
在这里使用是否最合适?还是其中一种深层字符串方法?我尝试过的似乎都不起作用。我错过了什么……我知道这是显而易见的,但我看不到。
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 - 将数组中的字符串复制到字符串变量时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10388172/