字符串与字符串数组元素之间的比较
Comparison between a string and an element of an array of strings
我的部分代码:
int t,w;
String day;
String[] week=new String[]{"mon","tues","wed","thurs","fri","sat","sun"};
.
.
.
day=sc.nextLine();
.
.
for(i=0;i<7;i++)
{
if(day.equals(week[i]))
{
break;
}
}
'.equals()' 方法每次都是 returning 'false' 即使字符串包含 same.The 输出不会随着 [=20 的初始化而改变=].g. 'String[] week={"mon","tues",......}' 给出相同的 output.Does 此方法 return false 当内存位置不同时?请说明。
当您使用 scanner.nextLine()
时,您阅读的内容比输入的字符串多。您也在阅读 EOL。尝试调试它并查看哪个字符串实际包含在 "day" 变量中。
下面的 Ankush 对我来说很好用,确保你对这段代码使用相同的大小写。如果您想匹配任何大小写,请使用 equalsIgnoreCase 而不是 equals
package com.java;
import java.util.Scanner;
public class Test {
static void check() {
String day;
String[] week = new String[] { "mon", "tues", "wed", "thurs", "fri", "sat", "sun" };
Scanner sc = new Scanner(System.in);
day = sc.nextLine();
for (int i = 0; i < 7; i++) {
if (day.equals(week[i])) {
System.out.println("break");
break;
}
}
sc.close();
}
public static void main(String args[]) {
Test.check();
}
}
您可能只想从扫描仪读取一个单词,但之后您需要清除您在输入末尾按“Enter”键入的换行符:
int t,w;
String day;
String[] week = new String[] {"mon","tues","wed","thurs","fri","sat","sun"};
. . .
day = sc.next();
. .
for (i = 0; i < week.length; i++) {
if(day.equalsIgnoreCase(week[i])) {
break;
}
}
sc.nextLine(); // here you get rid of remaining new line character
sc.close();
我的部分代码:
int t,w;
String day;
String[] week=new String[]{"mon","tues","wed","thurs","fri","sat","sun"};
.
.
.
day=sc.nextLine();
.
.
for(i=0;i<7;i++)
{
if(day.equals(week[i]))
{
break;
}
}
'.equals()' 方法每次都是 returning 'false' 即使字符串包含 same.The 输出不会随着 [=20 的初始化而改变=].g. 'String[] week={"mon","tues",......}' 给出相同的 output.Does 此方法 return false 当内存位置不同时?请说明。
当您使用 scanner.nextLine()
时,您阅读的内容比输入的字符串多。您也在阅读 EOL。尝试调试它并查看哪个字符串实际包含在 "day" 变量中。
下面的 Ankush 对我来说很好用,确保你对这段代码使用相同的大小写。如果您想匹配任何大小写,请使用 equalsIgnoreCase 而不是 equals
package com.java;
import java.util.Scanner;
public class Test {
static void check() {
String day;
String[] week = new String[] { "mon", "tues", "wed", "thurs", "fri", "sat", "sun" };
Scanner sc = new Scanner(System.in);
day = sc.nextLine();
for (int i = 0; i < 7; i++) {
if (day.equals(week[i])) {
System.out.println("break");
break;
}
}
sc.close();
}
public static void main(String args[]) {
Test.check();
}
}
您可能只想从扫描仪读取一个单词,但之后您需要清除您在输入末尾按“Enter”键入的换行符:
int t,w;
String day;
String[] week = new String[] {"mon","tues","wed","thurs","fri","sat","sun"};
. . .
day = sc.next();
. .
for (i = 0; i < week.length; i++) {
if(day.equalsIgnoreCase(week[i])) {
break;
}
}
sc.nextLine(); // here you get rid of remaining new line character
sc.close();