如何解决如何比较大于或小于字符串
嘿,我想逐个字符串地进行比较,但是我不知道如何做。
如果用户输入的字符串与数组相同,那么它将执行某些操作,否则将表示不是数组。
有人建议比较字符串吗?但是可以比较字符串吗?像下面的代码
rustup install nightly-2020-10-06
rustup target add wasm32-unknown-unknown --toolchain nightly-2020-10-06
export WASM_BUILD_TOOLCHAIN=nightly-2020-10-06
解决方法
要查看字符串是否在数组中,请尝试
Scanner input = new Scanner(System.in);
List<String> list = Arrays.asList("Henry","Alex");
System.out.print("Enter a name: ");
String ans = input.nextLine();
if (list.contains(ans)){
System.out.println("Name is in list");
} else {
System.out.println("Name is not in list");
}
,
您可以迭代数组并将字符串与每个元素进行比较。找到匹配项后,您应该打印Found
消息并中断循环。如果在整个循环中都找不到匹配项,请在循环后打印Not found
消息。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String array[] = { "Henry","Alex" };
System.out.print("Enter a name: ");
String ans = input.nextLine();
boolean found = false;
for (String s : array) {
if (s.equals(ans)) {
System.out.println("Name is available");
found = true;
break;
}
}
if (!found) {
System.out.println("The name does not exist in the array");
}
}
}
示例运行:
Enter a name: Alex
Name is available
另一个示例运行:
Enter a name: Nisha
The name does not exist in the array
请注意,我使用了boolean
变量found
来跟踪数组中是否存在ans
。即使不使用这样的附加变量,也有一种方法可以实现:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String array[] = { "Henry","Alex" };
System.out.print("Enter a name: ");
String ans = input.nextLine();
int i;
for (i = 0; i < array.length; i++) {
if (array[i].equals(ans)) {
System.out.println("Name is available");
break;
}
}
// If the loop has been completed without `break`,it means `name` does not
// exist
if (i == array.length) {
System.out.println("The name does not exist in the array");
}
}
}
示例运行:
Enter a name: Alex
Name is available
另一个示例运行:
Enter a name: Nisha
The name does not exist in the array
,
没有一种方法可以检测列表中的值。首先,您必须将数组转换为列表。有一种方法:
1。使用“包含”方法
列表中有一个名为contains()
的方法,该方法返回布尔值。 True-如果值/对象在列表中,则为false-如果值不在列表中。
示例:
String[] array = {"apple","orange"};
List<String> list = Arrays.asList(array);
String value = "apple";
if (list.contains(value)) {
System.out.println("Value is in the list");
} else {
System.out.println("Value is not in the list");
}
这是检测数组是否包含值/对象的最简单方法。另外,可以使用.contains()
方法来代替.indexOf()
,如果数组中不存在值,该方法将返回-1。这也是其他编程语言中最古老的方式:if (list.indexOf(value) != -1)
。
这些方法的问题可能是当输入的值和数组中的值具有不同的字符大小写(上/下)时。为了解决这个问题,您应该迭代数组并使用相同的字符大小写。
2。迭代数组
当字符串值大小写不匹配时,迭代数组值可以解决问题。示例:
String[] array = {"Apple","Orange"};
String value = "apple";
boolean isInArray = false;
for (String item : array) {
isInArray = item.toLowerCase().equals(value.toLowerCase());
if (isInArray) {
System.out.println("Value is in the list");
break; // exiting array iteration when value was found
}
}
if (!isInArray) { // if all array was iterated and no matching value was found
System.out.println("Value is not in the list");
}
3。使用收集流
此方法仅适用于Java 8和更高版本。然后,您可以将lambda表达式用于流。但是有时使用流可能是多余的。示例:
String[] array = {"apple","orange"};
List<String> list = Arrays.asList(array);
String value = "apple";
boolean isInArray = list.stream().anyMatch(item -> item.toLowerCase().equals(value.toLowerCase()));
if (isInArray) {
System.out.println("Value is in the list");
} else {
System.out.println("Value is not in the list");
}
,
w3schools的一些信息:
equals()方法比较两个字符串,如果字符串相等则返回true,否则返回false。
提示:使用compareTo()方法按字典顺序比较两个字符串。
示例代码段:
String myStr1 = "Hello";
String myStr2 = "Hello";
System.out.println(myStr1.compareTo(myStr2));
如果相等,则返回0。如果不是,它将返回一些值 您可以通过将返回值传递给变量来运行if 如果等于0,则等于 否则打印不相等
希望我已经回答
如果要搜索并查找字符串是否在数组中,请检查此链接以获取更多信息https://www.geeksforgeeks.org/check-if-a-value-is-present-in-an-array-in-java/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。