2013-10-27 3 views
-2

Я столкнулся с странным файлом, читающим файл. Проблема в том, что когда я читаю файл, он отображает все данные в одной строке. Чтобы исправить это, я добавил строки. Разделители во время чтения файла. Он работает fine.see следующий кодУдаление управляющего символа

line = br.readLine(); 
       while (line != null) { 
        String[] parts = line.split(" "); 
        word_count += parts.length; 
        line_count++; 
        fileRead+=line; 
        fileRead+=System.getProperty("line.separator","\n"); 
        line = br.readLine(); 
       } 

Теперь проблема возникает, когда я прочитал данные из FILEREAD строки и подсчитывают длину каждого и каждое слово, то это не дает мне правильную длину/размер некоторых строк, как

Пусть говорят файл содержит

Здравствуйте, сегодня воскресенье

Благодаря

Это дает мне правильную десятую часть приветствия (5) сегодня (5) is (2) Sunday (13). он добавляет воскресную строку, как Sunday/n/rThanks. Я не знаю, чтобы получить длину двух особей натягивает

код для получения длины

public void stringLenth(String[] parts) { 
     for(int i=0;i<parts.length;i++){ 
      System.out.println("hello"+parts[i]+"lenth"+parts[i].trim().length()); 
      parts[i] = parts[i].replaceAll("\\r|\\n", ""); 
      if(parts[i].length() < minWordCount ){ 
       minWordCount = parts[i].trim().length(); 
      } 
     } 
    } 

Любая идея?

+0

Удалить второй символ \ из функции ** replaceAll ** и удалить фрагмент для CR и LF - тогда он будет работать правильно! => replaceAll ("\ r", "") .replaceAll ("\ n", ""); – pasty

ответ

0

Используйте \\s вместо одного символа пробела, чтобы разделить вашу линию.

Вместо того, чтобы расщепляться, попробуйте использовать регулярное выражение с Matcher и используйте \\w в качестве регулярного выражения, чтобы найти все слова.

Смежные вопросы