トークンのArrayListに、通常、中置式を変換し私はのようなものを変換したい
233 + 4 *(4-8)+5 [233へ
、+、4、*、(、4 、 - 、8、)、+、5]
ここで、後者はストリングの配列です。
これまでのところ私が持っている:
String s = "233 + 4 *(4-8) +5";
for(int i = 0; i<s.length(); i++)
{
int j = i + 1;
String sub = s.substring(i,j);
String checkdigit = s.substring(i,j);
while(checkdigit.matches("\\d|\\.") && j<s.length())
{
checkdigit = s.substring(j,j+1);
j++;
}
System.out.print(sub);
if(!sub.equals(" ")) expression.add(sub);
}
しかし、私はnullポインタ例外を取得しています。誰かがこれを訂正するのを助けることができる?
誰かがこれを解析してマイナスの値(-5など)を受け入れるように助けてくれれば助かります。
編集: ところで。
編集2(5.0など)ダブルスのためのものです:誰もが自分のコードを置き換えることができます任意のJava APIクラスを知っている場合
、私は彼らと私のコードを置き換えることができるかを示してください。