2014-05-10 4 views
1

단어가 들어있는 String[] 배열이 있습니다. 알파벳 순서로 정렬하려면 버블 정렬 방법을 사용하고 싶습니다.내 문자열 배열에 백 슬래시가 표시됩니다.

일부 단어는 제외하고 모든 것이 제대로 작동하는 것처럼 보입니다. 예를 들어, \r\n 축약 형 또는 \r\n 인 경우 해당 단어가 순서대로 배치되지 않습니다.

그러나 그 단어를 인쇄 할 때 "\r\n"이 나타나지 않습니다.

replace/replaceAll 메서드를 사용하여 제거하려고했으나 제대로 작동하지 않는 것으로 보입니다.

+2

'축소'및 '계층 적'이란 무엇을 의미합니까? 백 슬래시를 추가하거나 제거하려고합니까? 명확히하십시오. – EJP

답변

1

'\r''\n' 기호는 인쇄 할 때 문자를 생성하지 않기 때문에 표시됩니다. 커서는 다른 위치로 이동합니다. '\n', '\r' 및 문자열의 양쪽 끝에있는 다른 공백 문자를 제거하는 간단한 방법 중 하나는 문자열의 trim() 메서드를 호출하는 것입니다. 당신의 정렬 알고리즘을시키는,

for (int i = 0 ; i != array.length ; i++) { 
    array[i] = array[i].trim(); 
} 

이 루프 후, 단어 하나도 양쪽 끝에 공백 문자가없는 것입니다 제대로 문자열을 비교 : 정렬에 가기 전에,이 작업을 수행.

여기서는 array의 요소가 null이 아닌 것으로 가정합니다. 일부 요소가 null 일 수있는 경우 null을 코드에 추가하십시오.

0

이 문자는 줄 바꿈 문자입니다. 문자열에서 trim()으로 전화를 걸어 제거 할 수 있어야합니다. 그러나 문자열은 Java에서 불변임을 기억하십시오.

전화가 원래 문자열을 수정하지 않으므로 trim()의 결과를 저장해야합니다. 사용하고있는 방법도 작동해야하지만 결과를 저장하는 것을 잊어 버린 것일 수 있습니다.

0

기본적으로 \r\n이스케이프 시퀀스 "이 시점에서 텍스트에 캐리지 리턴을 삽입"와 "이있는 텍스트에서 줄 바꿈을 삽입 의미는 이스케이프 시퀀스 here

에서보세요 point "

그런 단어를 인쇄 할 때 java는 캐리지 리턴이나 개행을 적절하게 삽입합니다. Windows가 \r\n을 사용하고 * nix가 \n을 사용하여 새 줄을 인쇄 할 곳을 나타내는 것으로 나는 믿습니다.

replaceAll()이 작동하지 않는 이유는 확실하지 않습니다. 당신이 적당한 논증을 제공했다면 그들은 일해야합니다. 백 슬래시를 벗어나는 것을 잊었을 수도 있습니다.

관련 문제