IT

끝에서 줄 바꿈을 제거하는 방법 (Java)?

lottoking 2020. 7. 17. 07:48
반응형

끝에서 줄 바꿈을 제거하는 방법 (Java)?


빈 줄에는 텍스트가 포함되어 있습니다. 텍스트를 사용하여 부품을 유지하지만 공백 줄 바꿈을 끝에서 제거하는 가장 좋은 방법은 무엇입니까?


String.trim()앞으로의 시작과 끝에서 공백 (공백, 줄곧 등)을 제거 하는 방법을 사용하십시오 .

String trimmedString = myString.trim();

String.replaceAll("[\n\r]", "");

당신의 고급이 고려 인 경우 null, 사용을 고려 -의 널 안전 버전을 .StringUtils.trim()String.trim()


tl; 박사

String cleanString = dirtyString.strip() ; // Call new `String::string` method.

String::strip…

이전 방법은 공백에 대한 이상한 정의가지고 있습니다.String::trim

여기 에서 논의한 것과 같이 , Java 11 클래스에 새로운 메소드를 추가합니다 . 약간의 공백에 대한 더 유니 코드에 정통한 정의를 사용합니다. JavaDoc for Class 에서이 정의의 규칙을 참조하십시오 .strip…StringCharacter::isWhitespace

예제 코드.

String input = " some Thing ";
System.out.println("before->>"+input+"<<-");
input = input.strip();
System.out.println("after->>"+input+"<<-");

또는 선행 또는 후행 공백 제거 할 수 있습니다 .

줄 바꿈을 구성 하는 코드는 언급하지 않았다 . 나는 당신의 줄 바꿈은 가능성의 대상 코드 포인트 의이 목록에 포함되어 상상 strip:

  • 유니 코드 공백 문자 (SPACE_SEPARATOR, LINE_SEPARATOR 또는 PARAGRAPH_SEPARATOR)이지만 또한 공백이 아닙니다 ( '\ u00A0', '\ u2007', '\ u202F').
  • '\ t', U + 0009 수평 태블 수송입니다.
  • U + 000A 라인 피드 인 '\ n'입니다.
  • '\ u000B', U + 000B 수직 탭입니다.
  • '\ f', U + 000C FORM FEED입니다.
  • '\ r', U + 000D 캐리지 리턴입니다.
  • '\ u001C', U + 001C 파일 구분자입니다.
  • '\ u001D', U + 001D GROUP SEPARATOR입니다.
  • '\ u001E', U + 001E 레코드 구분자입니다.
  • '\ u001F', U + 0입니다.

String trimStartEnd = "\n TestString1 linebreak1\nlinebreak2\nlinebreak3\n TestString2 \n";
System.out.println("Original String : [" + trimStartEnd + "]");
System.out.println("-----------------------------");
System.out.println("Result String : [" + trimStartEnd.replaceAll("^(\\r\\n|[\\n\\x0B\\x0C\\r\\u0085\\u2028\\u2029])|(\\r\\n|[\\n\\x0B\\x0C\\r\\u0085\\u2028\\u2029])$", "") + "]");
  1. 이미의 시작 = ^,
  2. 끝 부분 = $,
  3. 정규식 조합 = | ,
  4. 줄 바꿈 = \ r \ n | [\ n \ x0B \ x0C \ r \ u0085 \ u2028 \ u2029]

이에 대한 답변을 추가합니다. 몇 가지 생각을하면 정규 작업을 통해 매우 쉽게 수행 할 수 있습니다.

처음부터 줄 바꿈 을 제거 비용

// Trim left
String[] a = "\n\nfrom the beginning\n\n".split("^\\n+", 2);

System.out.println("-" + (a.length > 1 ? a[1] : a[0]) + "-");

끝 부분 :

// Trim right
String z = "\n\nfrom the end\n\n";

System.out.println("-" + z.split("\\n+$", 2)[0] + "-");

나는 믿을 수있는 것이 트리밍하는 가장 성능 방법이 확실하다고 확신합니다. 그러나 가장 깨끗한 작업을 인라인하는 것입니다.

간단한 정규식 양쪽 끝의 문자 변형 및 조합을 트리밍하기 위해 간단한 방법을 수행 할 수 있습니다.


String text = readFileAsString("textfile.txt");
text = text.replace("\n", "").replace("\r", "");

참고 URL : https://stackoverflow.com/questions/7454330/how-to-remove-newlines-from-beginning-and-end-of-a-string-java

반응형