Java에서 문자열 발생을 바꿀 수 없습니까?

user3398326

Java 프로그램을 사용하여 즉석에서 만든 일부 json 형식의 데이터를 저장하는 Java에 StringBuilder 개체가 있습니다. AL 내가하려는 것은 StringBuilder 객체에서 String 1의 발생을 String 2로 바꾸는 것입니다. 대체 할 아래 코드를 작성했지만 작동하지 않습니까? 간단한 문자열 교체를 수행하는 이유 또는 효율적인 방법은 무엇입니까?

StringBuilder json = new StringBuilder ();

public void method1(){

String replacelater =   "   {\"name\":\" <font color=\\\"#FF0000\\\">"+funcvp_name4.trim()+" <\\/font> \",  \"children\":[  ";

callingmethod2();

String replacewith = "   {\"name\":\" <font color=\\\"#FF0000\\\">"+funcvp_name4.trim()+totalempforfuncvp+" <\\/font> \",  \"children\":[  ";

String jsonnew = json.toString();
jsonnew.replaceFirst(replacelater, replacewith);

json.setLength(-1);
json.append(jsonnew);
}

오류:

Exception in thread "main" java.util.regex.PatternSyntaxException: Illegal repetition near index 2
   {"name":" <font color=\"#FF0000\">(7H Cost 806) <\/font> ",  "children":[  
  ^
    at java.util.regex.Pattern.error(Unknown Source)
    at java.util.regex.Pattern.closure(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.replaceFirst(Unknown Source)
    at CreateChart.iterateFuncVPNamesFromArrayList(CreateChart.java:496)
    at CreateChart.getDataFromEMPHCForFuncVp(CreateChart.java:110)
    at CreateChart.main(CreateChart.java:964)
이안 로버츠

코드에는 두 가지 주요 문제가 있습니다. 첫째,의 첫 번째 인수 replaceFirst는 정규식으로 처리되므로 백 슬래시 및 중괄호와 같은 것은 검색 할 리터럴 항목이 아니라 메타 문자 입니다. replaceFirst를 사용해야 하는 리터럴 문자열과 일치합니다 Pattern.quote.

두 번째로 Java의 문자열은 변경 불가능 replaceFirst합니다. 호출 된 문자열을 수정하지 않고 결과를 새 문자열로 반환합니다.

String jsonnew = json.toString().replaceFirst(
  Pattern.quote(replacelater), replacewith);

또는 replace메서드는 첫 번째 매개 변수를 정규식이 아닌 리터럴 문자열로 취급하지만 첫 번째 매개 변수뿐만 아니라 모든 항목 을 대체 합니다 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

영숫자 문자열에서 알파벳의 첫 번째 발생을 어떻게 바꿀 수 있습니까?

분류에서Dev

JSON 문자열을 객체로 바꿀 수 없습니까?

분류에서Dev

파일에서 문자열을 어떻게 바꿀 수 있습니까?

분류에서Dev

문자열에서 "$"를 바꿀 수 없습니다.

분류에서Dev

문자열에서 첫 번째 하위 문자열을 어떻게 바꿀 수 있습니까?

분류에서Dev

문자열의 특정 부분을 바꿀 수 없습니다.

분류에서Dev

문자열을 바꿀 수 없습니다

분류에서Dev

문자열을 변수로 바꿀 수 있습니까?

분류에서Dev

문자열의 하위 문자열을 바꿀 수 없습니다.

분류에서Dev

Python의 데이터 프레임에서 읽을 때 문자열을 바꿀 수 없습니다.

분류에서Dev

d3js에서 문자열을 숫자로 어떻게 바꿀 수 있습니까?

분류에서Dev

C # 계산에서 문자열 값을 사용하여 + 또는-연산자를 바꿀 수 있습니까?

분류에서Dev

Realm에서 배열을 Result <>로 바꿀 수 있습니까?

분류에서Dev

Visual Studio Code에서 문서의 줄 바꿈을 한 줄씩 바꿀 수 있지만 줄 바꿈을 두 줄 이상 바꿀 수는 없습니까?

분류에서Dev

mysql 명령을 셸에서 문자열로 바꿀 수없는 이유는 무엇입니까?

분류에서Dev

주어진 문자열에서 \ n을 바꿀 수없는 이유는 무엇입니까?

분류에서Dev

Java에서 배열의 각 값 쌍을 어떻게 바꿀 수 있습니까?

분류에서Dev

Java replaceAll은 문자열의 문자를 바꿀 수 없습니다.

분류에서Dev

문자열을 백 슬래시 문자로 바꿀 수 없습니다.

분류에서Dev

innerHTML을 사용하지 않고 <a> 태그를 문자열 내에서 href 링크로 바꿀 수 있습니까?

분류에서Dev

문자열에서 공백을 _ (밑줄)로 어떻게 바꿀 수 있습니까?

분류에서Dev

자바 스크립트에서이 패턴을 바꿀 수 없습니다.

분류에서Dev

C #에서 문자열의 텍스트를 바꿀 수 없습니다.

분류에서Dev

Java-문자열에서 char 'Á'를 다른 문자로 바꿀 수 없습니다.

분류에서Dev

두 개의 다른 파일에있는 문자열을 하나의 명령으로 바꿀 수 있습니까?

분류에서Dev

이름 문자열에서 각 단어의 첫 글자를 대문자로 바꾸는 디렉토리 이름을 어떻게 바꿀 수 있습니까?

분류에서Dev

정규식을 사용하여 문자열을 바꿀 수 없습니다.

분류에서Dev

Python에서 레코드 배열의 행을 바꿀 수 없습니다.

분류에서Dev

Visual Studio 갤러리에서 게시자 이름을 바꿀 수 없습니다.

Related 관련 기사

  1. 1

    영숫자 문자열에서 알파벳의 첫 번째 발생을 어떻게 바꿀 수 있습니까?

  2. 2

    JSON 문자열을 객체로 바꿀 수 없습니까?

  3. 3

    파일에서 문자열을 어떻게 바꿀 수 있습니까?

  4. 4

    문자열에서 "$"를 바꿀 수 없습니다.

  5. 5

    문자열에서 첫 번째 하위 문자열을 어떻게 바꿀 수 있습니까?

  6. 6

    문자열의 특정 부분을 바꿀 수 없습니다.

  7. 7

    문자열을 바꿀 수 없습니다

  8. 8

    문자열을 변수로 바꿀 수 있습니까?

  9. 9

    문자열의 하위 문자열을 바꿀 수 없습니다.

  10. 10

    Python의 데이터 프레임에서 읽을 때 문자열을 바꿀 수 없습니다.

  11. 11

    d3js에서 문자열을 숫자로 어떻게 바꿀 수 있습니까?

  12. 12

    C # 계산에서 문자열 값을 사용하여 + 또는-연산자를 바꿀 수 있습니까?

  13. 13

    Realm에서 배열을 Result <>로 바꿀 수 있습니까?

  14. 14

    Visual Studio Code에서 문서의 줄 바꿈을 한 줄씩 바꿀 수 있지만 줄 바꿈을 두 줄 이상 바꿀 수는 없습니까?

  15. 15

    mysql 명령을 셸에서 문자열로 바꿀 수없는 이유는 무엇입니까?

  16. 16

    주어진 문자열에서 \ n을 바꿀 수없는 이유는 무엇입니까?

  17. 17

    Java에서 배열의 각 값 쌍을 어떻게 바꿀 수 있습니까?

  18. 18

    Java replaceAll은 문자열의 문자를 바꿀 수 없습니다.

  19. 19

    문자열을 백 슬래시 문자로 바꿀 수 없습니다.

  20. 20

    innerHTML을 사용하지 않고 <a> 태그를 문자열 내에서 href 링크로 바꿀 수 있습니까?

  21. 21

    문자열에서 공백을 _ (밑줄)로 어떻게 바꿀 수 있습니까?

  22. 22

    자바 스크립트에서이 패턴을 바꿀 수 없습니다.

  23. 23

    C #에서 문자열의 텍스트를 바꿀 수 없습니다.

  24. 24

    Java-문자열에서 char 'Á'를 다른 문자로 바꿀 수 없습니다.

  25. 25

    두 개의 다른 파일에있는 문자열을 하나의 명령으로 바꿀 수 있습니까?

  26. 26

    이름 문자열에서 각 단어의 첫 글자를 대문자로 바꾸는 디렉토리 이름을 어떻게 바꿀 수 있습니까?

  27. 27

    정규식을 사용하여 문자열을 바꿀 수 없습니다.

  28. 28

    Python에서 레코드 배열의 행을 바꿀 수 없습니다.

  29. 29

    Visual Studio 갤러리에서 게시자 이름을 바꿀 수 없습니다.

뜨겁다태그

보관