Подстрока продолжает выдавать исключение StringIndexOutOfBounds - PullRequest
0 голосов
/ 29 декабря 2011

Итак, я использую список строк, которые я ввел, поэтому все строки есть, но когда я пытаюсь использовать для них подстроку, она продолжает давать мне исключение StringIndexOutOfBounds.

Вотcode:

List<String> li = new ArrayList<String>();
            String entered = text.getText().toString().trim();
            String[] query = entered.split(" ");
            int temp;
            for (int i = 0; i < sizeString;i++)
            {
                temp = a[i].indexOf(" ");
                if (query[0].toLowerCase().matches(a[i].toLowerCase().substring(0,temp)))
                    li.add(a[i]);
            }

Хорошо, теперь мой arrayadapter дает мне нулевой указатель. adb не скажет мне, что кроме нулевого указателя Полный код:

public void onClick (View v)
        {
            List<String> li = new ArrayList<String>();
            String entered = text.getText().toString().trim();
            String[] query = entered.split(" ");
            int temp;
            for (int i = 0; i < sizeString;i++)
            {
                if ( a[i].indexOf ( " " ) != -1 )
                    {
                        temp = a[i].indexOf(" ");
                        a[i].substring(0,temp);
                    }
                if (query[0].toLowerCase().equals(a[i].toLowerCase()))
                    li.add(a[i]);                   
            }
            setContentView(R.layout.search_results);
            final ListView list= (ListView)findViewById(R.id.search_list);
            String[] results = new String[sizeString];
            for(int i = 0; i<li.size();i++)
                results[i]=li.get(i);
            list.setAdapter(new ArrayAdapter<String>(Browse.this,android.R.layout.simple_list_item_1 ,results));
        }

Ответы [ 3 ]

1 голос
/ 29 декабря 2011

Если пробела нет, то temp будет -1, вам следует проверить это.

0 голосов
/ 29 декабря 2011

вставьте это условие в ваш код if ( a[i].indexOf ( " " ) != -1 ) перед этой строкой temp = a[i].indexOf(" ");

0 голосов
/ 29 декабря 2011

возможно добавить проверку на возврат -1 из indexOf ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...