"안녕, 아미고!"

"내가 아는 한 Rishi는 이미 정규 표현식에 대해 이야기했습니다."

"네, 아주 흥미로웠어요."

"좋습니다. 이제 정규식을 사용하여 문자열로 작업하는 방법에 대해 말씀드리겠습니다."

"가장 간단한 질문부터 시작하겠습니다."

1) 문자열이 정규 표현식에 지정된 패턴과 일치하는지 어떻게 확인합니까?

"이를 위한 일치 방법이 있습니다. 정규 표현식이 포함된 문자열을 전달하면 이 방법은 true 또는 false를 반환합니다."

행동 양식)
boolean matches(String regex)
String s = "Good news, everyone!";
Boolean test = s.matches("news\\.*");
결과:

false (the String doesn't start with "news")

2) 일치하는 모든 하위 문자열을 다른 문자열로 바꾸려면 어떻게 해야 합니까?

"이를 위한 두 가지 방법이 있습니다."

" replaceAll 메서드는 하위 문자열의 모든 항목을 다른 문자열로 바꿉니다."

" replaceFirst 메소드는 전달된 하위 문자열의 첫 번째 항목을 지정된 문자열로 바꿉니다."

행동 양식)
String replaceAll(String regex, String replacement)
String s = "Good news, everyone!";
String s2 = s.replaceAll ("e\\.","EX");
결과:

s2 == "Good nEXs EXEXyonEX";
String replaceFirst(String regex, String replacement)
String s = "Good news, everyone!";
String s2 = s.replaceFirst("e\\.","EX");
결과:

s2 == "Good nEXs, everyone!";

3) 문자열을 부분으로 어떻게 분할합니까?

"이를 위해 구분 마스크를 사용하는 분할 방법이 있습니다."

행동 양식)
String[] split(String regex)
String s = "Good news everyone!";
String[] ss = s.split("ne");
System.out.println(Arrays.toString(ss));
결과(세 문자열의 배열):

[Good , ws everyo, !]
"Good ", "ws everyo", "!";

" StringTokenizer 클래스는 문자열을 부분으로 분할하는 또 다른 방법입니다 ."

"이 클래스는 정규식을 사용하지 않습니다. 대신 구분 기호 집합이 포함된 문자열을 전달하기만 하면 됩니다. 이 접근 방식의 장점은 전체 문자열을 한 번에 여러 조각으로 나누지 않고 대신 천천히 이동한다는 것입니다. 처음부터 끝까지."

"클래스는 생성자와 두 개의 메서드로 구성됩니다. 분리할 문자열을 구분 문자 집합을 포함하는 문자열과 함께 생성자에 전달해야 합니다."

nextToken 메서드는 다음 토큰(하위 문자열)을 반환합니다.

hasMoreTokens() 메서드는 아직 반환되지 않은 하위 문자열이 있는 경우 true를 반환합니다.

행동 양식)
boolean hasMoreTokens()

String nextToken()
String s = "Good news, everyone!";

StringTokenizer tokenizer =
new StringTokenizer(s,"ne");
while (tokenizer.hasMoreTokens())
{
String token = tokenizer.nextToken();
System.out.println(token);
}
화면 출력:

Good
ws
v
ryo
!

" StringTokenizer 생성자 에 전달된 두 번째 문자열의 모든 문자는 구분 기호로 처리됩니다."

"다시 한 번 말하지만 모든 것이 명확해 보입니다. 이 코드를 직접 작성할 수는 없지만 여기에서 무슨 일이 일어나고 있는지 이해합니다."

"훌륭합니다. 그러면 주제를 마스터했다고 가정하겠습니다."