-3

我在 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 可能不在输入中。提前致谢

4

2 回答 2

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];

或者

int k = delims.length == 3 ? Integer.parseInt(delims[2]) : 0;

谢谢

于 2013-08-19T07:51:36.400 回答
1

您的问题不是很清楚,但如果您想在第一行保存第三个元素,只需检查数组的长度delims[]

String[] delims = strLine.split(",");
if (delims.length > 2) {
  K = delims[2]
}

如果数组中有两个以上的元素,则保存第三个(数组从 0 开始)。

对不起,如果我没有回答你的问题。如果您想要进一步的精度,您可以发表评论。

于 2013-08-19T07:48:33.570 回答