我正在使用 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(.*)" ),则代码可以正常工作。我认为这里的问题是格式,我真的想不通。
抱歉使用非描述性术语,我两个月前才开始编程......
TLDR;
if( words.get( i ).matches( cmd3 + "(.*)" ))
这就是问题所在,特别是( cmd3 + (.* ))。我在这方面的逻辑是,用户在末尾输入 (.*) 的任何字符串都应该有效,例如,如果用户键入“ABCD”,那么我应该有:
if( words.get( i ).matches( "ABCD(.*)" ))
谢谢!
PS:startsWith() 方法可以完成这项工作,这对我来说是一个非常小的错误。感谢所有回答的人。