2014-02-10 5 views
0

[Аннотация: Мне нужен способ, чтобы удалить символ новой строки маркера (\ п) из массивной строки, надеюсь, без регулярных выражений]Поиск символа новой строки « п» в строку

Для моего класса CS, мы имеем читать в лабиринте из текстового файла, который будет выглядеть примерно так:

############################## 
#@...........................# 
############################## 
############################## 
############################## 
############################## 
############################## 
############################## 
############################## 
############################## 
------------------------------ 
############################## 
############################## 
#@...........................# 
############################## 
############################## 
############################## 
############################## 
############################## 
############################## 
############################## 
------------------------------ 
############################## 
############################## 
############################## 
#@...........................# 
############################## 
############################## 
############################## 
############################## 
############################## 
############################## 
------------------------------ 

пунктирные линии указывают на отдельные этажи. Это 3D-лабиринт.

Это просто тест для чтения лабиринта, поэтому части не имеют значения. Мы должны прочитать весь лабиринт в одну строку с использованием класса Scanner, но тогда мы должны быть способны тестировать каждого человека (x, y, z) и возвращать тот символ, который существует в этой точке. Моя идея состоит в том, чтобы разделить огромную строку на 3-мерный массив символов (char [] [] []), но для этого требуется удалить символы новой строки из огромной строки лабиринта. Есть ли способ удалить \ n токены из массивной строки, надеюсь, без использования регулярного выражения. Я много оглядывался, но не могу найти надежного ответа. Многие люди предлагают использовать регулярное выражение, но я не слишком хорошо знаком с этим и хотел бы избежать его, если это возможно. Спасибо за вашу помощь.

+0

Если вы хотите, чтобы разбить строку на строки, посмотрите в Javadoc класс 'String' в для метода с именем' split'. –

+0

Если вы используете «Сканер», вы можете просто использовать ['Scanner # nextLine'] (http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#nextLine % 28% 29) итеративно потреблять каждую строку и отбрасывать новую строку с каждой прочитанной строкой. – ajp15243

ответ

3

Использование замены:

String input="###...##"; 
String output=input.replace("\n",""); 
+0

Я понял, что сам не через 5 минут после публикации этого вопроса. Теперь я чувствую себя совершенно невежественным. Я так долго смотрел на проблему, даже самые очевидные решения становятся не столь очевидными. Отметьте как ответ после ограничения времени. Благодарю. –

0

Если вы читаете строки как String с, вы можете использовать trim() метод:

String line = "...\n".trim(); 

общественности Строка подрезать(): Возвращает копию строка с пропущенными пропущенными и конечными пробелами.

0

Java признает новый символ линии как один символ, т. Е. «\ N» является единственным символом. Поэтому я предполагаю, что если вы используете сканер для чтения каждого символа, тогда вы можете включить условие , если оно равно, а также при обнаружении нового символа линии оно игнорирует его. Что-то вроде:

if(character!="\n") 
{ 
    //your code to keep the character into the array 
} 
Смежные вопросы