اقرأ ملفًا بتنسيق محدد في ArrayList
-
26-09-2019 - |
سؤال
لدي ملف بهذا التنسيق المحدد:
0 2 4 0 1 A 0 5 B 1 1 A 1 3 B 2 6 A 2 4 B 3 6 A 3 4 B 4 6 A 4 4 B 5 1 A 5 5 B 6 6 A 6 2 B
- السطر 1 = Start State
- السطر 2 = قبول الحالة
- السطر 3 - ن = جدول الانتقال
- الصف الأول = الحالة في
- الصف الثاني = الدولة خارج
- أ ، ب = رمز
كيف يمكنني FileReader
في جافا اقرأ هذه الملف إلى 5 مختلف ArrayList
S (الدولة ، الدولة النهائية ، الدولة في ، الدولة خارج والرمز)؟
المحلول
يمكنك استعمال ال الماسح الضوئي الفصل لقراءة الملف (يوصى بشدة). نظرًا لأنك تعرف مواضع العناصر التي تحتاجها ، يمكنك بعد ذلك استخدام ينقسم طريقة لتحليل سلسلة الإدخال في أي arraylist التي تحبها.
نصائح أخرى
من الأفضل استخدام أ الماسح الضوئي هنا:
static class State {
int in;
int out;
String symbol;
State(int in, int out, String symbol) {
this.in = in;
this.out = out;
this.symbol = symbol;
}
@Override
public String toString() {
return in + " " + out + " " + symbol;
}
}
public static void main(String[] args) throws FileNotFoundException {
Scanner s = new Scanner(new File("input.txt"));
int startState = Integer.parseInt(s.nextLine());
List<Integer> acceptStates = new LinkedList<Integer>();
List<State> states = new LinkedList<State>();
Scanner st = new Scanner(s.nextLine());
while (st.hasNextInt())
acceptStates.add(st.nextInt());
while (s.hasNextInt())
states.add(new State(s.nextInt(), s.nextInt(), s.next()));
System.out.println(startState);
System.out.println(acceptStates);
System.out.println(states);
// logic...
}
ألق نظرة على StringTokenizer, ، استعمال ArrayList
S لبناء قوائمك.
لا تنتمي إلى StackOverflow