2012-05-27 3 views
9

Pattern 클래스의 pattern() 메서드와 toString() 메서드의 차이점은 무엇입니까?패턴 클래스의 toString()과 패턴 클래스

기타 문서는 말한다 :

public String pattern() 

이 패턴의 컴파일 원의 정규 표현을 돌려줍니다.

public String toString() 

이 패턴의 캐릭터 라인 표현을 돌려줍니다. 이 패턴이 컴파일 된 정규 표현식입니다.

심지어 자신의 구현은 동일한 결과를 반환

import java.util.regex.*; 

class Test { 
    public static void main(String[] args) { 
    Pattern p = Pattern.compile("[a-zA-Z]+\\.?"); 
    String s = p.pattern(); 
    String d = p.toString(); 
    System.out.println(s); 
    System.out.println(d); 
    } 
} 

나는 차이를 볼을, 왜 두 가지 방법이있다? 또는 나는 무엇인가 놓치고 있냐?

답변

12

각 클래스에는 Object에서 상속 된 toString() 메서드가 있기 때문에. toString() 메서드는 어떤 종류의 문자열 표현을 만들 수도있는 경우 가능한 최선의 방법으로 객체를 나타내는 문자열을 반환해야합니다. toString()이라는 이름은 꽤 모호합니다. 따라서 더 간단한 방법 pattern()을 추가했습니다.

그들은 toString()을 영리하게 반환하기를 원했기 때문에 Pattern 클래스의 문자열 표현이 좋은 정규식 패턴을 사용했습니다.

+0

@martijin : thats it ?? ... 나는 왜 dnt하지만 나는기만당하는 느낌! 어쨌든 thnx !! – WickeD

+0

@WickeD : 예, 그렇습니다. :) –

0

toString() 방법은 각 클래스에 있습니다 (클래스 Object에서 확장). 예가 있습니다. System.out.print(Object o);Object에 대한 정보를 인쇄 할 수 있습니다. 실제로 이것은 동일합니다 : System.out.print(o.toString()). 그래서 당신은 당신이 가지고있는 객체를보기위한 간단한 방법을 가지고 있습니다. 시도해보십시오 :

Object someUnknownObject = new JButton(); 
System.out.println(someUnknownObject); 

// output 
javax.swing.JButton[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.5... 

본인이 알 수 있듯이이 버튼에 대해 전혀 모르는 경우에도이 개체에 대한 정보를 볼 수 있습니다.

String str = "hello"; 
String toStr = str.toString(); 

System.out.println(str.toString().toString().toString()...); 

이 unuseful이지만, all classes have this method :

또한 StringObject 그렇게 한 이상한 예를 들어이있다. 그래서 "내 문자열"과 "내 문자열".toString()은 동일합니다