我在java中读取文件时遇到问题: 我有一个这样的文件,例如:
2,3
2
5
2
3
4
其中第一行表示2个数组A和B的长度,另一个是每个数组的元素,所以:A [2,5] B [2,3,4]。我可以读取此输入并保存为两个数组
public static void main(String[] args) throws IOException{
int A[] = null;
int B[] = null;
//int C[] = null;
//int k = 0;
try {
// Open the file that is the first
// command line parameter
FileInputStream fstream = new FileInputStream("input.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
String strLine = br.readLine(); // step 1
if (strLine != null) {
String[] delims = strLine.split(","); // step 2 split first line
// step 3 initialization array A and B
A = new int[Integer.parseInt(delims[0])];
B = new int[Integer.parseInt(delims[1])];
//C = new int[Integer.parseInt(delims[2])]; //PROBLEMA SE NON CE K DA ERRORE RISOLVERE
//k = 0;
//k = C.length;
// step 4 Load A element from file input
for (int i = 0; i < A.length; i++)
A[i] = Integer.parseInt(br.readLine());
// step 5 load B element form file input
for (int i = 0; i < B.length; i++)
B[i] = Integer.parseInt(br.readLine());
br.close();
}// step 6
} catch (Exception e) {// Catch exception if any
System.err.println("Error: " + e.getMessage());
}
//Sort Array with MergeSort
System.out.println(Arrays.toString(A));
System.out.println(Arrays.toString(B));
但我的问题是输入可能在第一行有另一个我必须保存的元素k。
2,3,5
2
5
2
3
4
和A [2,5] B [2,3,4]我想保存k = 5,但我不知道我该怎么做。问题是K可能不在输入中。 提前致谢
答案 0 :(得分:1)
您的问题不是很明确,但如果您想在第一行保存第三个元素,请检查数组delims[]
的长度。
String[] delims = strLine.split(",");
if (delims.length > 2) {
K = delims[2]
}
如果数组中有两个以上的元素,则保存第三个元素(数组从0开始)。
很抱歉,如果我没有回答您的问题。如果您想进一步精确,可以发表评论。
答案 1 :(得分:1)
您可以检查delims
数组的长度。
int length = delims.length;
int k=0,a =0, b=0;
if (length == 3) {
k = Integer.parseInt(delims[2]);
}
a = Integer.parseInt(delims[0]);
b = Integer.parseInt(delims[1]);
A = new int[a];
B = new int[b];
OR
int k = delims.length == 3 ? Integer.parseInt(delims[2]) : 0;
由于