Bağımlı liste düğümündeki verileri (değişken katsayısı ve derecesi) yazdırmaya çalışıyorum.Bağlantılı listenin node hatası için giriş dosyasını oku
Ancak input.txt dosyasındaki bir satırı okuduğumda bazı yanlış bilgiler var. girdi.txt dosyasının içeriği
2
2 0
3 0
2
-2 0
3 4
altındadır Ama Kodum java.lang.NumberFormatException gibi bir hata mesajı yazdırmak, bu okumayı başarısız: Giriş dizesi için: "01"
peşin
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
public class Assignment21 {
public static void main(String[] args) {
try {
LinkedList polynomialN = new LinkedList();
LinkedList polynomialM = new LinkedList();
BufferedReader in = new BufferedReader(new FileReader("input.txt"));
String firstEntryNum;
firstEntryNum = in.readLine();
int entryNum = Integer.valueOf(firstEntryNum);
for(int i = 0; i < entryNum; i++){
String temp = in.readLine();
int divider = temp.indexOf(" ");
int coefficient = Integer.parseInt(temp.substring(0, divider));
int degree = Integer.parseInt(temp.substring(divider) + 1); //지수 입력받기
polynomialN.add(new Node(coefficient, degree));
}
String secondEntryNum;
secondEntryNum = in.readLine();
entryNum = Integer.valueOf(secondEntryNum);
for(int i = 0; i < entryNum; i++){
String temp = in.readLine();
int divider = temp.indexOf(" ");
int coefficient = Integer.parseInt(temp.substring(0, divider)); //계수 입력받기
int degree = Integer.parseInt(temp.substring(divider) + 1); //지수 입력받기
polynomialM.add(new Node(coefficient, degree));
}
polynomialN.print();
polynomialM.print();
in.close();
BufferedWriter out = new BufferedWriter(new FileWriter("output.txt"));
out.close();
} catch (Exception e) {
System.err.println(e);
System.exit(1);
// TODO: handle exception
}
}
}
class Node{
int coefficient;
int degree;
Node nextNode;
public Node(int coefficient, int degree) {
this.coefficient = coefficient;
this.degree = degree;
}
}
class LinkedList {
private Node head;
public void add(Node newNode){
if (head == null)
head = newNode;
else {
Node tail = head;
while(tail.nextNode != null){
tail = tail.nextNode;
}
tail.nextNode = newNode;
}
}
public void print() {
StringBuffer sb = new StringBuffer();
Node current = head;
int size = 0;
while (current != null){
sb.append(current.coefficient);
sb.append(" ");
sb.append(current.degree);
current = current.nextNode;
size++;
}
System.out.println("[" + sb + "]");
System.out.println("size: " + size);
}
}
Teşekkür
Dosyadan veri okurken Tarayıcı API'sini kullanabilir miyim? Nasıl olabilir? –
Evet, stdin yerine giriş yolu dosya yolu olacak. – Zeus