如何一次检查 ArrayList 中的多个字符串?
How do I check for multiple Strings in an ArrayList at once?
如何将 2 个字符串插入同一个变量?我考虑这样做的一种方式是做这样的事情:
static String devs = "Monter123","Epik_1";
那没用。所以我决定使用 ArrayLists:
ArrayList<String> devs = new ArrayList<String>(); // Is there a way to put this on one line?
admins.add("Monter123");
admins.add("Epik_1");
所以..我想出了如何将多个字符串输入到 ArrayList 中。现在,我希望能够使用它。首先我导入:
import java.util.*;
获取所有 java.util。(扫描仪、ArrayList 等)然后,我检查 userInput 是否等于任何开发人员:
if(userInput.equals(devs.get(0))||userInput.equals(devs.get(1))){
System.out.println("You are a dev");
}
正如您在我上面的代码中看到的,如果我决定招募更多开发人员,我将需要继续添加更多行:
|| userInput.equals(...
进入 if 语句。这很不方便。我想知道是否有:
devs.get(all)
事物的类型。
有答案请参考这里:
import java.util.*;
class test {
public static void main(String[] args) {
ArrayList<String> devs = new ArrayList<String>();
devs.add("Monter123");
devs.add("Epik_1");
Scanner userINT = new Scanner(System.in);
while(true){
String userInput = userINT.nextLine();
if (userInput.equals(devs.get(0))){// I want this to check for devs.get(1) too, without the use of || userINT.equals(...!
System.out.println("good");
} else {
System.out.println("bad?");
}
}
}
}
您可以使用 Stream.anyMatch()
,如下例所示:
import java.util.*;
class test {
public static void main(String[] args) {
ArrayList<String> devs = new ArrayList<String>();
devs.add("Monter123");
devs.add("Epik_1");
Scanner userINT = new Scanner(System.in);
while(true){
String userInput = userINT.nextLine();
if (devs.stream().anyMatch(s -> userInput.equals(s))){
System.out.println("good");
} else {
System.out.println("bad?");
}
}
}
}
您可以使用 for each 循环来搜索相同的匹配字符串,例如:
Scanner scan = new Scanner(System.in);
List<String> list = new ArrayList<>();
list.add("Monter123");
list.add("Epik_1");
String userInput = scan.nextLine();
for (String string : list){
System.out.println(string.equals(userInput) ? "Good" : "Bad");
}
如果用户输入 Moniker1,那么它会检查您的列表和 returns 您的输出。
List#contains
List
interface offers the contains
方法。引用 Javadoc:
Returns true if this list contains the specified element.
定义您的 List
对象。
List< String > devs = List.of( "Monter123" , "Epik_1" ) ;
询问列表是否有任何项目与您的用户输入相匹配。
String userInput = …
boolean found = devs.contains( userInput ) ;
用法示例。
List< String > devs = List.of( "Monter123" , "Epik_1" ) ;
String userInput1 = "Bob" ;
boolean found1 = devs.contains( userInput1 ) ;
String userInput2 = "Epik_1" ;
boolean found2 = devs.contains( userInput2 ) ;
System.out.println( userInput1 + " is dev: " + found1 ) ;
System.out.println( userInput2 + " is dev: " + found2 ) ;
看到这个code run live at IdeOne.com。
Bob is dev: false
Epik_1 is dev: true
如何将 2 个字符串插入同一个变量?我考虑这样做的一种方式是做这样的事情:
static String devs = "Monter123","Epik_1";
那没用。所以我决定使用 ArrayLists:
ArrayList<String> devs = new ArrayList<String>(); // Is there a way to put this on one line?
admins.add("Monter123");
admins.add("Epik_1");
所以..我想出了如何将多个字符串输入到 ArrayList 中。现在,我希望能够使用它。首先我导入:
import java.util.*;
获取所有 java.util。(扫描仪、ArrayList 等)然后,我检查 userInput 是否等于任何开发人员:
if(userInput.equals(devs.get(0))||userInput.equals(devs.get(1))){
System.out.println("You are a dev");
}
正如您在我上面的代码中看到的,如果我决定招募更多开发人员,我将需要继续添加更多行:
|| userInput.equals(...
进入 if 语句。这很不方便。我想知道是否有:
devs.get(all)
事物的类型。
有答案请参考这里:
import java.util.*;
class test {
public static void main(String[] args) {
ArrayList<String> devs = new ArrayList<String>();
devs.add("Monter123");
devs.add("Epik_1");
Scanner userINT = new Scanner(System.in);
while(true){
String userInput = userINT.nextLine();
if (userInput.equals(devs.get(0))){// I want this to check for devs.get(1) too, without the use of || userINT.equals(...!
System.out.println("good");
} else {
System.out.println("bad?");
}
}
}
}
您可以使用 Stream.anyMatch()
,如下例所示:
import java.util.*;
class test {
public static void main(String[] args) {
ArrayList<String> devs = new ArrayList<String>();
devs.add("Monter123");
devs.add("Epik_1");
Scanner userINT = new Scanner(System.in);
while(true){
String userInput = userINT.nextLine();
if (devs.stream().anyMatch(s -> userInput.equals(s))){
System.out.println("good");
} else {
System.out.println("bad?");
}
}
}
}
您可以使用 for each 循环来搜索相同的匹配字符串,例如:
Scanner scan = new Scanner(System.in);
List<String> list = new ArrayList<>();
list.add("Monter123");
list.add("Epik_1");
String userInput = scan.nextLine();
for (String string : list){
System.out.println(string.equals(userInput) ? "Good" : "Bad");
}
如果用户输入 Moniker1,那么它会检查您的列表和 returns 您的输出。
List#contains
List
interface offers the contains
方法。引用 Javadoc:
Returns true if this list contains the specified element.
定义您的 List
对象。
List< String > devs = List.of( "Monter123" , "Epik_1" ) ;
询问列表是否有任何项目与您的用户输入相匹配。
String userInput = …
boolean found = devs.contains( userInput ) ;
用法示例。
List< String > devs = List.of( "Monter123" , "Epik_1" ) ;
String userInput1 = "Bob" ;
boolean found1 = devs.contains( userInput1 ) ;
String userInput2 = "Epik_1" ;
boolean found2 = devs.contains( userInput2 ) ;
System.out.println( userInput1 + " is dev: " + found1 ) ;
System.out.println( userInput2 + " is dev: " + found2 ) ;
看到这个code run live at IdeOne.com。
Bob is dev: false
Epik_1 is dev: true