나는 [1 + 2/3 * 5-4] 형식으로 사용자 입력을 받아들이는 계산기를 만들어야하는 숙제를 가지고있다. 배열을 사용하여 문자열의 값을 저장하지 않아도됩니다. 대신에 한 번에 3 개의 숫자와 2 개의 연산자를 사용하기로되어 있습니다. 내 질문은 내가 어떻게 숫자와 연산자를 저장하고 일단 내가 그들을 저장하고 값을 계산 원래 숫자에서 새로운 번호와 새로운 연산자를 얻을 q입니다. 이것은 내가 지금까지 옳은 방향으로 가고 있는지 확실하지 않은 것입니다.어떻게 배열없이 java에서 문자열을 분할합니까?
public class ExpresionEvaluation {
private static String expresion;
static double o1;
static double o2;
private static double o3;
private static char operator1;
private static char operator2;
public static double getO1(String s){
s=s.trim();
String r ="";
while (s.length()>0 && s.charAt(0)>='0' && s.charAt(0)<='9'){
r = r + s.charAt(0);
s = s.substring(1);
}
o1 = Double.parseDouble(r);
return(o1);
}
public static char getOperator1(String s){
s=s.trim();
char r;
while (s.length()>0 && s.charAt(0)>='0' && s.charAt(0)<='9'){
r = s.charAt(1);
s = s.substring(2);
}
r = operator1;
return(r);
}
public static double getO2(String s){
s=s.trim();
String r ="";
while (s.length()>0 && s.charAt(0)>='0' && s.charAt(0)<='9'){
r = r + s.charAt(2);
s = s.substring(3);
}
o2 = Double.parseDouble(r);
return(o2);
}
public static char getOperator2(String s){
s=s.trim();
char r;
while (s.length()>0 && s.charAt(0)>='0' && s.charAt(0)<='9'){
r = s.charAt(3);
s = s.substring(4);
}
r = operator2;
return(operator2);
}
public static double getO3(String s){
s=s.trim();
String r ="";
while (s.length()>0 && s.charAt(0)>='0' && s.charAt(0)<='9'){
r = r + s.charAt(4);
s = s.substring(5);
}
o3 = Double.parseDouble(r);
return(o3);
}
}
건방진 대답 : 대신'LinkedList's를 사용하십시오. – Anko
계산기 입력이 유효합니까? [1 + 2 * 5-4 + 3 * [2-4 * 2]] – aphex
유효합니다. –