문자열 수식을 숫자와 연산자의 두 배열로 나눕니다.Java : 문자열 방정식을 숫자와 연산자로 나누기
String expr = "3/20.0";
String[] numbers = expr.split("[+-/\\*]");
String[] operators = expr.split("[^+-/\\*]+");
System.out.println(Arrays.toString(numbers));
System.out.println(Arrays.toString(operators));
하지만 내 코드를 출력합니다 : [3, 20, 0] [, /, .]
하지만 쉼표 연산자 배열의 앞에 왜 확실하지 않다 [3, 20.0] [, /]
을 얻으려고하지만 주로 난 그냥 원하는 20.0을 numbers 배열의 한 요소로 만들고 연산자 배열에서 소수점을 유지하십시오.
FWIW 일치하는 역입니다 : '+ - /'문자 클래스에서 의미하지 않는다 "+ 나 - 또는 /는 "~ 사이의 모든 문자"를 의미합니다. ASCII로 "+, -. /"로 설정됩니다. (그래서 "."와 일치합니다.) 문자 클래스에 -를 넣으려면 끝에 둡니다. –