또 다른 해결책은, [^:]+:[^:]+$
같은 것을 입력을 일치하도록 Pattern
을 사용하는 것입니다. 패턴을 사용하면 다른 메소드를 변경하지 않고 다른 분리자를 쉽게 처리 할 수 있으므로 쉽게 유지 보수 할 수 있습니다.
패턴을 사용하면 String.split()
보다 효율적일 수 있습니다. 후자는 매개 변수를 내부적으로 Pattern
으로 변환하기 때문에 패턴이 실제로 필요한 것 이상을 수행하기 때문입니다. 당신은 일반적으로 패턴마다 컴파일을 방지하기 위해 재사용 가능한 상수로 regex
을 추출 할
String example = "ab:cd:ef:gh";
Pattern regex = Pattern.compile("[^:]+:[^:]+$");
final Matcher matcher = regex.matcher(example);
if (matcher.find()) {
// extract the matching group, which is what we are looking for
System.out.println(matcher.group()); // prints ef:gh
} else {
// handle invalid input
System.out.println("no match");
}
참고 :
이 이런 식으로 뭔가를 줄 것이다. 상수를 사용하면 실제 코드를 보지 않고도 패턴을 더 쉽게 변경할 수 있습니다.
구분 기호를 수동으로 추가 할 때 이것을 사용해서는 안됩니다. – rajadilipkolli