패턴 및 매처를 사용하여 주어진 문자열에 2 자리 사이의 공백이 있는지 확인하려고합니다. 예를 들어 "5 1"은 true로 돌아가고, "51"은 false로 되돌아 가야합니다. 처음에는 string.replaceAll을 정규 표현식과 함께 사용했지만 멋지게 작동했지만 패턴으로 이동하면 작동하지 않는 것처럼 보입니다.패턴 및 매처를 사용하여 숫자 찾기
String findDigit = "5 1/3";
String regex = "(\\d) +(\\d)";
findDigit = findDigit.replaceAll(regex, "$1 $2");
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(findDigit);
System.out.println(m.matches());
System.out.println(m.hitEnd());
나는 이것을 처음으로 시작했습니다. replaceAll은 문제없이 작동하고 여분의 공백을 제거하지만, m.matches와 m.hitEnd는 모두 false를 반환합니다. 그럼 난 사실 (분명히) 돌아 오면 나는 경우 단지
String findDigit = "5";
String regex = "\\d";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(findDigit);
System.out.println(m.matches());
System.out.println(m.hitEnd());
을 단순화 있도록 뭔가를 잘못하고 일치 할 거라고 생각하지만이
String findDigit = "5 3";
String regex = "\\d";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(findDigit);
System.out.println(m.matches());
System.out.println(m.hitEnd());
로 변경하면 다시 모두 거짓 온다. 그래서 내 주요 질문은 내 문자열에 어떤 숫자가 먼저 있는지 그리고 더 구체적으로 어떻게 결정되는지입니다. 내 문자열에 숫자가있는 경우 어떻게 결정합니까? 나는 그게 타격이라고 생각 했지.하지만 나는 틀렸어. 미리 감사드립니다.
: 예를 들어
? – jhnewkirk
누가 저를 다시 뽑았는지 고맙다. 그리고 내가 바보가되었다는 것을 알았어. m.find(). * 책상에 머리를 쓰다듬어 둔다. – jhnewkirk