URI Decoding java 질문 드립니다.

  • sover
    sover
    public class Main {
    
        public static void main(String[] args) throws Exception {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    
            int T = Integer.parseInt(br.readLine());
    
            while(T-->0){
                String line = br.readLine();
    
                line = line.replaceAll("%20", " ").replaceAll("%21", "!").
                        replaceAll("%24", "$").replaceAll("%25", "%").replaceAll("%28", "(").replaceAll("%29", ")").replaceAll("%2a", "*");
                System.out.println(line);
    
            }
        }
    }
    

    위와같이 replaceAll를 사용해서 수정했는데 런타임 오류가 발생해서요


    11년 전
2개의 댓글이 있습니다.
  • Being
    Being

    코드를

    ~~~ java
    ...
    ~~~

    블럭 안에 넣어 주셔야 다른 분들이 읽기 편하게 구문 강조가 됩니다. 이용에 참고해 주세요 :)


    11년 전 link
  • Being
    Being

    제가 지금 살펴 보니, java의 String.replaceAll()의 경우 regular expression 형태의 첫 인자를 받아 두 번째 인자로 대치하는 것이어서 두 번째 인자에 있어 특정 문자 - 정확히 말해 '\'와 '' 를 regex 치환자로 사용한다고 합니다 ([java.lang.string 참조](http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#replaceAll(java.lang.String, java.lang.String))). 이를테면 "1"과 같이 쓰면 매칭된 부분에 대한 첫 번째 매칭 그룹으로 치환하는 식이지요. 그 과정에서 문제가 생긴 것으로 보입니다.


    11년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.