다음 알고리즘을 적용하려고합니다. 내가 원하는 것은 주어진 문자열을 일련의 숫자 또는 연산자로 구성된 부분 문자열로 나눕니다.Java에서 문자열 알고리즘 나누기
이 문자열은 "22 + 2"이므로 [0] = "22"[1] = "+"및 [2] = "2"인 배열을 얻을 수 있습니다.
이
내가 지금까지 가지고있는,하지만 난 경계 예외에서 인덱스를 얻을 : 나는 오히려 대안을 제공 할 것보다 내 추론 뭐가 잘못 말한 것public static void main(String[] args) {
String string = "114+034556-2";
int k,a,j;
k=0;a=0;j=0;
String[] subStrings= new String[string.length()];
while(k<string.length()){
a=k;
while(((int)string.charAt(k))<=57&&((int)string.charAt(k))>=48){
k++;}
subStrings[j]=String.valueOf(string.subSequence(a,k-1)); //exception here
j++;
subStrings[j]=String.valueOf(string.charAt(k));
j++;
}}
, 그러나 물론 나는 것 어떤 종류의 도움에 감사드립니다.
이String[] operands = string.split("\\D");\\split around anything that is NOT a number
char[] operators = string.replaceAll("\\d", "").toCharArray();\\replace all numbers with "" and turn into char array.
'+'뿐 아니라 모든 연산자에서 작동하기를 원하십니까? –
예, 지금은 crtieria "숫자가 아닌 것은"괜찮을 것입니다. –
이 특정 알고리즘이나 숫자와 연산자를 파싱하는 일반적인 문제에 관심이 있으십니까? 즉, 다른 알고리즘에 관심이 있습니까? – rcreswick