Java 문자열에서 줄 끝 문자 제거
나는 이와 같은 문자열이
"hello
java
book"
문자열에서 \ r 및 \ n을 제거하고 싶습니다 (hello \ r \ njava \ r \ nbook). "hellojavabook"과 같은 문자열을 원합니다. 어떻게 할 수 있습니까?
replaceAll이있는 정규식.
public class Main
{
public static void main(final String[] argv)
{
String str;
str = "hello\r\njava\r\nbook";
str = str.replaceAll("(\\r|\\n)", "");
System.out.println(str);
}
}
쌍일 때만 \ r \ n을 제거하려면 (위의 코드는 \ r 또는 \ n을 제거함) 대신 다음을 수행하십시오.
str = str.replaceAll("\\r\\n", "");
정규식을 피하고 싶거나 이전 JVM을 대상으로해야하는 경우 String.replace ()는 다음을 수행합니다.
str=str.replace("\r","").replace("\n","");
CRLF 쌍을 제거하려면 :
str=str.replace("\r\n","");
후자는 동일한 작업을 수행하기 위해 정규식을 빌드하는 것보다 더 효율적입니다. 그러나 문자열이 한 번만 구문 분석되기 때문에 전자가 정규식으로 더 빠를 것이라고 생각합니다.
public static void main(final String[] argv)
{
String str;
str = "hello\r\n\tjava\r\nbook";
str = str.replaceAll("(\\r|\\n|\\t)", "");
System.out.println(str);
}
정규식에 표를 추가하는 것도 유용합니다.
주어진 문자열 str :
str = str.replaceAll("\\\\r","")
str = str.replaceAll("\\\\n","")
replaceAll 메서드를 사용하여 \ n 또는 \ r을 빈 문자열로 바꾸어 보셨습니까 ?
당신은 사용할 수 있습니다 unescapeJava
에서 org.apache.commons.text.StringEscapeUtils
다음과 같은
str = "hello\r\njava\r\nbook";
StringEscapeUtils.unescapeJava(str);
static byte[] discardWhitespace(byte[] data) {
byte groomedData[] = new byte[data.length];
int bytesCopied = 0;
for (int i = 0; i < data.length; i++) {
switch (data[i]) {
case (byte) '\n' :
case (byte) '\r' :
break;
default:
groomedData[bytesCopied++] = data[i];
}
}
byte packedData[] = new byte[bytesCopied];
System.arraycopy(groomedData, 0, packedData, 0, bytesCopied);
return packedData;
}
commons-codec 프로젝트에서 찾은 코드입니다.
Windows, Mac 또는 UNIX에서 줄 종결자를 알고있는 경우 줄 종결자를 직접 전달할 수 있습니다 (예 : \ n). 또는 다음 코드를 사용하여 세 가지 주요 운영 체제 중 하나에서 줄 바꿈을 바꿀 수 있습니다.
str = str.replaceAll("\\r\\n|\\r|\\n", " ");
위의 코드 줄은 Mac, Windows 및 Linux에서 줄 바꿈을 공백으로 바꿉니다. 또한 줄 구분 기호를 사용할 수 있습니다. 모든 OS에서 작동합니다. 다음은 줄 구분 기호에 대한 코드 조각입니다.
String lineSeparator=System.lineSeparator();
String newString=yourString.replace(lineSeparator, "");
시도해 보았 니
string.trim();
이것은 문자열의 공백을 유지하면서 모든 선행 및 기울기를 트리밍하기위한 것입니다. 도움이 되었기를 바랍니다.
편집 : (나는 충분히 명시 적이 지 않았다)
따라서 string.split ()을 사용하면 string []이 생깁니다. 배열의 각 문자열에 대해 string.trim ()을 수행 한 다음 추가합니다.
String[] tokens = yourString.split(" ");
StringBuffer buff = new StringBuffer();
for (String token : tokens)
{
buff.append(token.trim());
}
동일한 문자열에 추가하는 대신 stringBuffer / Builder를 사용하십시오.
참고URL : https://stackoverflow.com/questions/593671/remove-end-of-line-characters-from-java-string
'UFO ET IT' 카테고리의 다른 글
모바일 브라우저 또는 PhoneGap 애플리케이션 간 감지 (0) | 2020.11.30 |
---|---|
C # WinForms의 ToggleButton (0) | 2020.11.29 |
패턴과 일치하는 여러 파일 삭제 (0) | 2020.11.29 |
gem install을 사용하여 이전 버전의 나침반으로 어떻게 다운 그레이드합니까? (0) | 2020.11.29 |
Python strip () 여러 문자? (0) | 2020.11.29 |