Android, строки, загруженные из .txt файла, не экранируются - PullRequest
0 голосов
/ 18 сентября 2011

Я загружаю данные из ресурса в свое собственное приложение, и размещаемые мной escape-символы обрабатываются не так, как я ожидаю. Например, строка в моем ресурсе будет выглядеть так:

Ellington Human Sciences Building<>EHS<>Human Performance Sciences Building\nNeighbor to Ellington Human Sciences Annex (EHSA)<>292<>482<>73<>25<>Human Sciences
Ellington Human Sciences Annex<>EHSA<>Human Performance Sciences Building\nNeighbor to Ellington Human Sciences Building (EHS)<>340<>464<>28<>20<>Human Sciences

мой файл-ридер выглядит так:

private synchronized void loadPOIs(Resources resource) throws IOException {
    if (mLoaded) return;

    InputStream inputStream = resource.openRawResource(R.raw.pois);
    BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));

    try {
        String line;
        while((line = reader.readLine()) != null) {
            String[] strings = TextUtils.split(line, "<>");
            if (strings.length < 7) continue;
            POI poi = addPOI(strings[0], strings[1], strings[2], strings[3], strings[4], strings[5], strings[6]);
            if (strings.length == 8) {
                final int len = strings[7].length();
                for (int i = 0; i < len; i++) {
                    final String prefix = strings[7].substring(0, len - i);
                    addMatch(prefix, poi);
                }
            }
        }
    } finally {
        reader.close();
    }
    mLoaded = true;     
}

strings [2] будет строкой, содержащей информацию о точке интереса, и они содержат символ "\ n". Когда я вызываю poi.getInfo () (метод получения, извлекающий информацию, возвращает строку), вывод позволяет «\ n» сохраняться.

есть идеи?

1 Ответ

0 голосов
/ 18 сентября 2011

Вы читаете текст из файла, и '\ n' является таким же допустимым текстом, как и любой другой, и не имеет какой-либо специальной коннотации в текстовом файле.Если вы хотите вместо этого новую строку, то напишите новую строку в своем текстовом файле.Конечно, это проще, чем выполнять перебор текста, и вы контролируете источник данных, поэтому при его изменении не должно возникнуть никаких проблем.

...