我正在做一个相对简单的文件读取,并且我在输入值和从平面文件读取并存储在数组中的数据值之间的验证中遇到了异常。我已将错误追踪到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=
答案 0 :(得分:5)
您忘记实际打印firstName
变量:
System.out.println("firstName=");
您需要:
System.out.println("firstName=" + firstName);
答案 1 :(得分:1)
对于你的问题,不是一个完整的答案,但是,如果你需要提高字符串连接速度,特别是在循环中,在代码中使用StringBuilder会更好。