IT Share you

Java는 문자열의 모든 대괄호를 바꿉니다.

shareyou 2020. 11. 25. 21:40
반응형

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

반응형