2012-05-04 4 views
0

Привет, ребята, я довольно новичок в кодировании, поскольку я только начал месяц назад в школе. Наш проект - построить игру. Для моей игры у меня есть вопросы, которые я прочитал из текстового файла в массив. Я изменил вкладки и новые строки с помощью \ t и \ n, чтобы отформатировать ее. Он отлично работает, когда я просто копирую код в System.out.println. Но когда я пытаюсь сделать это с помощью текстового файла, он выходит именно так, как я ввел его в с \ т и \ п Пожалуйста, любая помощь :)Использование t из текстового файла в Java

Пример Текстовый файл (только одну строку от него)

Как игра на словах, которые обычно описываются? \ П \ т \ Tā) Пан \ т \ т \ т \ т \ Tb) Штифт \ п \ т \ тС) Ручка \ т \ т \ т \ т \ Td) Пун

Выход если оставить заявку в печатном виде

Как выглядит игра на словах, которые обычно описываются?
А) Пан Б) Штифт
С) Ручка D) Пун

Выход из перечисленных кода

Как игра слов обычно описывается? \ П \ т \ Tā) Пан \ т \ т \ т \ т \ Tb) Штифт \ п \ т \ тС) Ручка \ т \ т \ т \ т \ Td) Пун

**import java.util.Scanner; 
import java.io.*; 
public class ImportFile { 
    public static void main(String[] args) throws Exception{ 
     Scanner easyfile = new Scanner(new File("src/EasyQuestions.txt")); 
     System.out.println(easyfile.nextLine()); 
    } 
}** 
+0

Вы по существу просите освободить строку: [Howto unescape строковый литерал Java в Java] (http://stackoverflow.com/questions/3537706/howto-unescape-a-java-string-literal-in-java) – trutheality

+1

Рассмотрите возможность использования 'String # replace (...)' или что-то похожее на перевод '\\ t' в' \ t' и аналогично '\\ n' и' \ n'. –

ответ

1

\ n и \ t - escape-последовательности, используемые в строках Java, для указания символа новой строки и символа табуляции, соответственно.

Однако, когда вы читаете текст из файла с этими символьными последовательностями, вы не читаете escape-последовательности, вы буквально читаете по два символа в каждом случае «\» и «n» в первом случае и «\», и 't' в последнем.

Я думаю, что вы хотите, чтобы отменить то, что вы сделали, и удалить «\ п» с и «\ т» s из файла, и поместить фактические строки и рычажков ..

0

\t и \n являются escape-последовательностями, которые необходимы, потому что у вас не может быть новой строки в середине строки кода Java.

// This doesn't work in Java. 
String s = "One line 
      the next line"; 

Но файлы, которые вы прочитали в могут иметь эти символы без проблем:

One line 
     the next line 

Так что, когда вы читаете текст из файла, Java не пытается избежать символов, которые он находит: он предполагает, что когда файл сказал \t, это означало \t, а не Вкладка.

Если вы хотите заменить \t с символом табуляции и \n с символом новой строки, вы должны сделать это самостоятельно. Метод String.replace() - хорошее место для начала.

0

Как уже упоминалось в комментарии, Java читает текст как «\ t» из текста как «\ t». Рассмотрите возможность использования String#replace(...) для замены «\ t» на «\ t»

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