1st problem: -
Multiple declaration of String myString;
2nd problem: -
String initialized incorrectly. Double quotes missing at the ends. Remove bracket and brace from the ends.
String myString = "a+b-c*d/e";
3rd problem: -
String array initialized with an String object, rather than an array object.
String[] result=new String(); // Should be `new String[size]`
In fact, you don't need to initialize your array before hand.
4th problem: -
String.split
takes a Regular Expression as argument, you have passed an array. Will not work.
Use: -
String[] result = myString.split("[-+*/]");
to split on all the operators.
And regarding your this statement: -
as well as =, -, *, d, /
(also an array of operators) separately.
I don't understand what you want here. Your sample string does not contains =
. And d
is not an operator
. Please see if you want to edit it.
UPDATE : -
If you mean to keep the operators as well in your array, you can use this regex: -
String myString= "a+b-c*d/e";
String[] result = myString.split("(?<=[-+*/])|(?=[-+*/])");
System.out.println(Arrays.toString(result));
/*** Just to see, what the two parts in the above regex print separately ***/
System.out.println(Arrays.toString(myString.split("(?<=[-+*/])")));
System.out.println(Arrays.toString(myString.split("(?=[-+*/])")));
OUTPUT : -
[a, +, b, -, c, *, d, /, e]
[a+, b-, c*, d/, e]
[a, +b, -c, *d, /e]
(?<=...)
means look-behind assertion
, and (?=...)
means look-ahead assertion
.