سؤال

لدي ملف بهذا التنسيق المحدد:

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 مختلف ArrayListS (الدولة ، الدولة النهائية ، الدولة في ، الدولة خارج والرمز)؟

هل كانت مفيدة؟

المحلول

يمكنك استعمال ال الماسح الضوئي الفصل لقراءة الملف (يوصى بشدة). نظرًا لأنك تعرف مواضع العناصر التي تحتاجها ، يمكنك بعد ذلك استخدام ينقسم طريقة لتحليل سلسلة الإدخال في أي 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, ، استعمال ArrayListS لبناء قوائمك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top