Почему я не могу получить доступ ко второму токену с помощью StringTokenizer? - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь разделить количество заказов на количество и наименование товара. Я уже делю список на отдельные строки, а затем пытаюсь разбить строки на «:», чтобы разделить количество и имя. Я знаю, что строки разделены правильно и отображают правильные вещи, а количество отсекается и показывает нормально, но по какой-то причине имя элемента недоступно и выдает исключение java.util.NoSuchElementException при попытке ссылки на него.

Я использовал .split () и теперь перешел на StringTokenizer, но он все еще не работает

 for (String item : orderItems) {
            StringTokenizer orderTokens = new StringTokenizer(item, ":");
            String count = orderTokens.nextToken().trim();
            String itemName = orderTokens.nextToken().trim();

В зависимости от ввода, я получаю несколько строк, которые выглядятчто-то вроде: 1: Lamb Korma 3: Open Chicken Sandwich

При отображении количества он работает нормально и даст мне 1 3, но когда я пытаюсь получить доступ к именам, я ожидаю, что он просто отобразит Lamb KormaОткройте Chicken Sandwich, и вместо этого выдается ошибка

2019-10-30 14:09:15.099 14658-14658/com.example.assignment1 E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.assignment1, PID: 14658
    java.util.NoSuchElementException
        at java.util.StringTokenizer.nextToken(StringTokenizer.java:349)
        at com.example.assignment1.activities.MenuFragment.saveOrder(MenuFragment.java:229)
        at com.example.assignment1.activities.MenuFragment$1.onClick(MenuFragment.java:158)
        at android.view.View.performClick(View.java:7125)
        at android.view.View.performClickInternal(View.java:7102)
        at android.view.View.access$3400(View.java:801)
        at android.view.View$PerformClick.run(View.java:27301)
        at android.os.Handler.handleCallback(Handler.java:883)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7319)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:934)
...