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() メソッドが仕事をしますが、それは私の側の非常に小さな間違いでした。答えてくれたみんなに感謝します。