0

ArrayList を使用して文字列のリストを保持しています。ArrayList を反復処理して、文字列 (ユーザー入力) で始まる単語を返そうとしています。

私のコード:

private void doP( ArrayList <String> words, String cmd3 )
{
    for( int i = 0; i < words.size(); i++ )
    {
        if( words.get( i ).matches( cmd3 + "(.*)" ))
        {
            tempString.add( words.get( i ));
            System.out.println( "H:" + words.get( i ));
        }
    }

    System.out.println( tempString );

( cmd3 + "(.* )" ) を ( "th(.*)" ) に置き換えると、コードは正しく機能します。ここでの問題はフォーマットだと思いますが、これは本当にわかりません。

説明的でない用語を使用して申し訳ありません。2か月前にプログラミングを始めたばかりです...

TLDR;

if( words.get( i ).matches( cmd3 + "(.*)" ))

これは、特に ( cmd3 + (.* )) の問題です。これにおける私の論理は、ユーザーが最後に (.*) を入力した文字列はすべて機能するはずです。たとえば、ユーザーが「ABCD」と入力した場合、次のようにする必要があります。

if( words.get( i ).matches( "ABCD(.*)" ))

ありがとう!

PS: startsWith() メソッドが仕事をしますが、それは私の側の非常に小さな間違いでした。答えてくれたみんなに感謝します。

4

4 に答える 4