Ich habe ein Problem mit meinem Code. Ich denke, das Problem ist etwa delims=[+,-,*,/]+
. wenn ich if (delims.equals("[+]+"))
für ex schreibe, dauert es nur [+]. Allerdings ist delims nicht gleich [+]. Ithink du hast was ich meine. delims gleich [+,-,*,/]+.
Zeichenfolge Parse Java
public static void main(String[] args) {
System.out.println("Please enter your calculation");
Scanner sc = new Scanner(System.in);
String s=sc.next();
String delims="[+,-,*,/]+";
String[] tokens=s.split(delims);
for(int i=0; i<1; i++){
String s1=tokens[i];
for (int j=1; j<2; j++){
String s2=tokens[j];
double n1=Double.parseDouble(s1);
double n2=Double.parseDouble(s2);
if (delims.equals("[+]+")){
System.out.println(n1+n2);
System.exit(0); }
if (delims.equals("[-]+")){
System.out.println(n1-n2);
System.exit(0);}
if (delims.equals("[*]+")){
System.out.println(n1*n2);
System.exit(0);}
if (delims.equals("[/]+")){
System.out.println(n1/n2);
System.exit(0);
}
}}}}
Siehe [this] (http://stackoverflow.com/questions/5993779/java-use-split-with-multiple-delimiters) Frage. Sie müssen ihm sagen, worauf er die Zeichenfolge aufteilen soll. Es scheint auch, dass Sie versuchen, Regex ohne zu sagen, dass Sie die Zeichenfolge mit Regex suchen möchten ... – Kidiskidvogingogin
Sie wollten wahrscheinlich sagen, wenn (s2.equals ("[+] +")) ... In Ihrem Code, den Sie mit "[+] +" vergleichen, aber delims ist immer "[+, -, *, /] +". – Milan
Ja genau das –