나는 아마도 + 또는 앞에 어떤 중간에 기호로 서명 및 부호없는 정수 상수를 반환 할 수 있어야합니다. 유일하게 허용 된 숫자는 내가 표현 전이나 정수 뒤에 마침표를 포함 할 수 없습니다라고 할 수있는 방법을 알아낼 수 없습니다 3, 4, 5Java 정규화 - "."을 포함하지 않는 정수의 경우 -
이다. "34 5 43"- "43 34.5"반환되는 문자열이 될 것입니다
이것은 내가 지금까지 가지고,하지만 난 말을 전달하는 경우 것입니다. 반환해야
모두가 "43"입니다.
public String getInts(String toBeScanned){
String INT = "";
Pattern p = Pattern.compile("\\b[+-]?[3-5]+\\b");
Matcher m = p.matcher(toBeScanned);
if (m.matches() == true){
INT = toBeScanned;
}
else{
m = p.matcher(" " + toBeScanned);
while (m.find()){
INT = INT + m.group() + " ";
}
}
return INT;
}
올바른 방향으로 생각하거나 푸시하면 감사하겠습니다. 첫 번째와 마지막 문자가 될 수 있음을 말할 수있는 방법이 있나요 [B \ 아니라이.]이 나를 밖으로 지옥을 실망
. 도움!
"\\ b? (?: ([+ -]? [3-5.] +)?) + \ b?" matcher의 마지막 그룹을 얻으시겠습니까? –
Acdtually, '\ b'은 자바 패턴에서 단어 경계 ***로 깨져 있습니다. *** 당신은 ** 자바의 네이티브 charset이 아닌 7 비트 문자만을 사용하십시오 ** 그렇지 않으면 [ Java 7 Pattern.UNICODE_CHARACTER_CLASS] (http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html#UNICODE_CHARACTER_CLASS) 컴파일 선택적 또는 동등한 포함 된 ""(? U) "' 깃발. 따라서 7 비트 데이터를 가지고 있는지 확인하거나 아니면 새로운 플래그를 사용하거나'\ b'을 사용하지 마십시오. – tchrist