1

だから、私はJavaのテキストベースの電卓を作ろうとしていますが、スキャナは私に頭痛の種を与えています. ここにコードスニピットがあります...

    Scanner input=new Scanner(in);
    while (input.hasNext()){
        System.out.print(input.next()+".");
    }
    System.out.print("\n");

私の入力はこれです: "1 + cake(3,4,6,10*30+sin(4)) * 3" そして私の出力はこれであるべきです: "1.+.cake(3,4,6,10* 30+sin(4)).*.3."

スキャナーは空白のみをトークン化する必要がありますが、これは「1.+.cake.(.3.,.4.,.6.,. 10..30.+.sin.(.4.)」です。 ..3. "

何らかの理由で、すべてのスペースが削除されますが、すべての単語、数字、および句読点も分離されます! 今、私は宿題をして、input.useDelimiter(String in) を使用してさまざまな区切り文字を試しました。私が使用したもののいくつかは次のとおりです。私は何を間違っているのですか!?!?!?!?!

4

1 に答える 1

0

代わりに StringTokenizer を使用してみてください。

public class demo 
{
    public static void main(String args[])
    {
            StringTokenizer st = new StringTokenizer("1 + cake(3,4,6,10*30+sin(4)) * 3");
             while (st.hasMoreTokens()) 
             {
                 System.out.println(st.nextToken());
             }
    }
}
于 2012-09-07T08:29:06.660 に答える