Как я могу обрабатывать невидимые символы новой строки в Java?

#java #newline #invisible #character-arrays

#java #новая строка #невидимый #символьные массивы

Вопрос:

В настоящее время я работаю над кодом для игры на Java. Я должен заполнить массив символами из файла .txt. Проблема в том, что моя программа также сохраняет невидимые символы новой строки из файла, и в результате массив заполняется неправильно. Я уже пытался заменить невидимые символы, но результат был катастрофическим (мой массив будет заполнен только для первой строки, а остальные останутся пустыми) вот мой блок кода, используемый для массива:

     import java.util.*;
    import java.io.*;

    public class Test {
        public static void main(String[] args) throws IOException{
        char background[][] = new char [14][20];

    try {

        FileInputStream fileinput = new FileInputStream("background.txt");
            int r;
            for(int i=0;i<14;i  ){
                for(int j=0;j<20;j  ){//<<THIS LINE WAS CHANGED
                    while((r = fileinput.read()) != -1){
                        char c = (char) r;
                        background[i][j] = c;
                        break;
                    }
                }
            }
            fileinput.close();
        }

        catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        for (int i=0;i<14;i  ){
            for(int j=0;j<20;j  ){
                System.out.print(background[i][j]);
            }
        }
}




}
 

Также формат файла .txt можно найти здесь: http://pastebin.com/NynJGkFk . Заранее большое спасибо!

Ответ №1:

Прочитайте строку как строку, вызовите метод .trim() в строке, а затем используйте .toCharArray(), чтобы разделить его на символы.

Ответ №2:

Если вы работаете в Windows, используйте » r n», чтобы проверить новую строку или извлечь зависящую от платформы строку из системных свойств

 String lineSeparator = System.getProperty("line.separator");