반응형
끝에서 줄 바꿈을 제거하는 방법 (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…
String
Character::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])$", "") + "]");
- 이미의 시작 = ^,
- 끝 부분 = $,
- 정규식 조합 = | ,
- 줄 바꿈 = \ 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", "");
반응형
'IT' 카테고리의 다른 글
100 % 너비 테이블 오버플로 div 컨테이너 (0) | 2020.07.17 |
---|---|
"mro ()"는 무엇을 씁니까? (0) | 2020.07.17 |
gem 'uglifier'를로드하는 중에 오류가 발생했습니다. (0) | 2020.07.17 |
"Select2는 정의되지 않은 오류에 대해 쿼리 기능이 없다고" (0) | 2020.07.17 |
두 속성과 일치하도록 XPath 쿼리를 작성하는 방법은 무엇입니까? (0) | 2020.07.17 |