Java는 문자열의 모든 대괄호를 바꿉니다.
문자열에서 대괄호를 제거하고 싶지만 방법을 모르겠습니다.
String str = "[Chrissman-@1]";
str = replaceAll("\\[\\]", "");
String[] temp = str.split("-@");
System.out.println("Nickname: " + temp[0] + " | Power: " + temp[1]);
하지만 제 결과는 다음과 같습니다. [Chrissman | 1] 대괄호는 제거되지 않습니다.
나는 다른 정규식을 사용하여 시도 : "\\[.*?\\]"
, "\\[\\d+\\]"
하지만 결과는 여전히 문자열에 부착 된 대괄호, 동일합니다.
편집하다:
나는 시도했다 :
str.replaceAll("]", "");
str.replaceAll("[", "");
그리고 이제 나는 다음을 얻습니다.
Exception in thread "Thread-4" java.util.regex.PatternSyntaxException: Unclosed character class near index 0
[
^
at java.util.regex.Pattern.error(Unknown Source)
at java.util.regex.Pattern.clazz(Unknown Source)
at java.util.regex.Pattern.sequence(Unknown Source)
at java.util.regex.Pattern.expr(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.util.regex.Pattern.<init>(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.lang.String.replaceAll(Unknown Source)
replaceAll 메서드는 이러한 항목을 개별적으로 교체하려고 시도 []
하는 내에 존재하지 않는 문자열 리터럴을 일치 시키려고합니다 String
.
String str = "[Chrissman-@1]";
str = str.replaceAll("\\[", "").replaceAll("\\]","");
정규식은 후속 대괄호 만 일치 (제거)합니다. 대신 사용 :
str = str.replaceAll("\\[|\\]", "");
대괄호 쌍을 그 사이의 내용으로 만 바꾸려면 다음을 사용할 수 있습니다.
str = str.replaceAll("\\[(.*?)\\]", "$1");
현재 정확한 문자열 을 제거하려고 []
합니다. 두 개의 대괄호 사이에 아무것도없는 상태입니다. 대신 모든를 [
제거하고 모든 ]
.
개인적으로 나는 replaceAll
정규식 부분으로 인해 더 많은 혼란을 야기하기 때문에 여기에서 사용하는 것을 피할 것입니다.
String replaced = original.replace("[", "").replace("]", "");
오직 당신이 경우 정규 표현식을 취하는 방법을 사용 정말로 전체 패턴 매칭을 수행 할를. 고정 문자열의 모든 항목을 바꾸고 싶을 때 replace
읽고 이해하는 것이 더 간단합니다.
(정규 표현식 형식을 사용하고 실제로 패턴을 일치시키는 대체 방법이 있지만 위 코드가 훨씬 더 간단하다고 생각합니다.)
정규식 사용 [\\[\\]]
-
String str = "[Chrissman-@1]";
String[] temp = str.replaceAll("[\\[\\]]", "").split("-@");
System.out.println("Nickname: " + temp[0] + " | Power: " + temp[1]);
출력-
Nickname: Chrissman | Power: 1
다음과 같이 할 수도 있습니다.
String data = "[yourdata]";
String regex = "\\[|\\]";
data = data .replaceAll(regex, "");
System.out.println(data);
Use this line:) String result = strCurBal.replaceAll("[(" what ever u need to remove ")]", "");
String strCurBal = "(+)3428";
Log.e("Agilanbu before omit ", strCurBal);
String result = strCurBal.replaceAll("[()]", ""); // () removing special characters from string
Log.e("Agilanbu after omit ", result);
o/p :
Agilanbu before omit : (+)3428
Agilanbu after omit : +3428
String finalVal = result.replaceAll("[+]", ""); // + removing special characters from string
Log.e("Agilanbu finalVal ", finalVal);
o/p
Agilanbu finalVal : 3428
String finalVal1 = result.replaceAll("[+]", "-"); // insert | append | replace the special characters from string
Log.e("Agilanbu finalVal ", finalVal1);
o/p
Agilanbu finalVal : -3428 // replacing the + symbol to -
String str, str1;
Scanner sc = new Scanner(System.in);
System.out.print("Enter a String : ");
str = sc.nextLine();
str1 = str.replaceAll("[aeiouAEIOU]", "");
System.out.print(str1);
참고URL : https://stackoverflow.com/questions/14442162/java-replace-all-square-brackets-in-a-string
'IT Share you' 카테고리의 다른 글
UTF-8 국제 문자에서 악센트를 제거하는 Ruby 메서드 (0) | 2020.11.25 |
---|---|
진입 점에 적합한 정적 'main'메서드를 포함하지 않습니다. (0) | 2020.11.25 |
java에서 이메일을 보내는 동안 javax.mail.AuthenticationFailedException이 발생합니다. (0) | 2020.11.25 |
x-www-form-urlencoded를 사용하여 Angular2를 POST로 강제 실행하는 방법 (0) | 2020.11.25 |
Android WebView에서 YouTube 동영상 재생을 중지하는 방법은 무엇입니까? (0) | 2020.11.25 |