gpt4 book ai didi

java - 如何在JAVA中找不到东西?

转载 作者:行者123 更新时间:2023-12-01 21:15:57 24 4
gpt4 key购买 nike

编辑:好的,抱歉问题不太清楚。我们试试其他方法:我们有一个 ArayList,其中包含姓名:Peter、John、Adam

我们正在寻找字符串名称;如果ArrayList包含字符串,我们要写入字符串。如果 ArrayList 不包含该 String,我们要将 String 添加到 ArrayList 中。

如果我正在寻找“Adam”,那么这个程序就不起作用,因为它首先找到名字“Peter”,然后是“John”,然后才找到“Adam”。因此,前两次,它认为“Adam”不在列表中,并且这样做。

String findName;
for (i = 0; i < arrayList.size(); i++) {
if (arrayList.get(i).getValue().contains(findName)) {
System.out.println(findName);
break;
}
else
arrayList.add(findString);
}

原始问题:

我有一个字符串和一个数组(ArrayList)。如果字符串在数组中,我必须做一些事情,如果它不在数组中,我必须做其他事情。我怎么做?我不能这样做:

String myString;
for (i = 0; i < arrayList.size(); i++) {
if (arrayList.get(i).getValue().equals(myString)) {
DO SOMETHING;
break;
}
else
DO SOMETHING ELSE;
}

因为它只会找到该字符串一次,其他时候它都会起作用,就像数组列表不包含该字符串一样。

所以我这样做:

String findString = "0";
String myString;
for (i = 0; i < arrayList.size(); i++) {
if (arrayList.get(i).getValue().equals(myString)) {
DO SOMETHING;
findString = "2"; //when I find the String, I change this
break;
}
if findString == "0"; //if I have not found the String, this happens
DO SOMETHING ELSE;
}

我有一种感觉,不应该这样做。 ;)

我知道我可以使用 boolean 值来代替这种方式,但其他方式也是一样的。难道没有完全不同的方法可以正确地做到这一点吗?

最佳答案

最简洁的方法如下:声明一个返回字符串是否在数组中的方法:

public boolean arrContainsStr(String str, String[] arr) {
for (int i = 0; i < arr.length; i++) {
if (arr[i].equals(str)) {
return true;
}
}
return false;
}

然后在您的代码中使用此方法,如下所示:

String myString;    
String[] myArray;
if (arrContainsStr(myString, myArray)) {
DO SOMETHING;
}else {
DO SOMETHING ELSE;
}

这适用于原始字符串数组。请注意,如果您使用的是ArrayList或类似的,您可以简单地使用.contains(myString)方法来检查列表是否包含您的字符串。此处的文档:https://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html#contains(java.lang.Object)

关于java - 如何在JAVA中找不到东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40095788/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com