2010-02-01 29 views
5

Vâng, tôi đang cố gắng để đọc một file văn bản đó trông như thế này:Tại sao mảng của tôi xóa số 0 từ một tệp tôi đang đọc?

FTFFFTTFFTFT
3054 FTFFFTTFFTFT
4674 FTFTFFTTTFTF
... vv

Và khi tôi đọc nó, tất cả mọi thứ biên dịch và tác phẩm tuyệt vời, đặt mọi thứ vào các mảng như thế này:

StudentID [0] = 3054
StudentID [1] = 4674
... vv

studentAnswers [0] = FTFFFTTFFTFT
studentAnswers [1] = FTFTFFTTTFTF

Tuy nhiên, nếu có một StudentID hàng đầu hoặc đuôi không, khi tôi in nó với System.out.println() ;, nó xóa các số 0 đầu và cuối! Tôi có một cảm giác đây là một cái gì đó đơn giản, và tôi cần phải sao chép mảng hoặc một cái gì đó. Cảm ơn bạn :)

Dưới đây là mã của tôi:

public static String[] getData() throws IOException { 
    int total = 0; 
    int[] studentID = new int[127]; 
    String[] studentAnswers = new String[127]; 

    String line = reader.readLine(); 
    String answerKey = line; 
    StringTokenizer tokens; 
    while((line = reader.readLine()) != null) { 
    tokens = new StringTokenizer(line); 
    studentID[total] = Integer.parseInt(tokens.nextToken()); 
    studentAnswers[total] = tokens.nextToken(); 
    System.out.println(total + " " +studentID[total]); 
    total++; 
    } 
    return studentAnswers; 
} 

Trả lời

10

Sử dụng String thay vì int. Theo nguyên tắc chung, sử dụng các loại tích phân để tính toán.

+0

Oh crap. Điều đó cực kỳ đơn giản. Cảm ơn bạn một triệu lần. Hy vọng rằng điều này sẽ hữu ích cho người khác nếu họ google: x – ashamadelion

4

Nếu bạn muốn bảo tồn số không, không sử dụng parseInt trên ID sinh viên; chỉ lưu trữ chúng dưới dạng chuỗi.

4

Loại int không có khái niệm về số 0 đứng đầu.

Để thêm zeroes hàng đầu để trưng bày, sử dụng một trong những phương pháp format:

System.out.format("%04d", 80); 
0

Integer.parseInt(tokens.nextToken()); sẽ trả lại số nguyên, vì vậy số không hàng đầu sẽ được bỏ qua.

Các vấn đề liên quan