Java 检查输入字符串的名称,如果其中一个不是文本文件,这是我的代码,但它是无效的
我的文本文件包括: 汤姆、玛丽、埃里克、洛克、凯文、本、萨利Java 检查输入字符串的名称,如果其中一个不是文本文件,这是我的代码,但它是无效的,java,Java,我的文本文件包括: 汤姆、玛丽、埃里克、洛克、凯文、本、萨利 public static void main(String[] args) throws IOException { Scanner sc = new Scanner (new FileReader("name.txt")); String Name; Scanner in = new Scanner(System.in); System.out.println("Enter a name:");
public static void main(String[] args) throws IOException
{
Scanner sc = new Scanner (new FileReader("name.txt"));
String Name;
Scanner in = new Scanner(System.in);
System.out.println("Enter a name:");
Name= in.nextLine();
String name = null;
while(sc.hasNext())
{
int i=0;
name= sc.next();
String [] Str=name.split(",");
if (Name.equals(Str[i]))
{
System.out.println("Yes");
}
else
{
System.out.println("No");
}
if (i<Str.length)
{
i++;
}
}
publicstaticvoidmain(字符串[]args)引发IOException
{
Scanner sc=新扫描仪(新文件阅读器(“name.txt”);
字符串名;
扫描仪输入=新扫描仪(系统输入);
System.out.println(“输入名称:”);
Name=in.nextLine();
字符串名称=null;
while(sc.hasNext())
{
int i=0;
name=sc.next();
字符串[]Str=name.split(“,”);
if(Name.equals(Str[i]))
{
System.out.println(“是”);
}
其他的
{
系统输出打印项次(“否”);
}
如果(i你的代码将只检查字符串数组中的第一个单词的意思Tom
。如果你想检查数组中的每个单词,请使用for
循环。如果你输入mary
,那么它将与Tom
进行比较,因此回答否
while(sc.hasNext())
{
name= sc.next();
String [] Str=name.split(",");
for(String s: Str){
if (Name.equals(s))
{
System.out.println("Yes");
}
else
{
System.out.println("No");
}
}//for missed. otherwise it will check only the first word in the String array
}
编辑:
还有一种检查方法
while(sc.hasNext())
{
name= sc.next(); //get each line from text file
String [] Str=name.split(",");
if(Arrays.asList(Str).contains(Name))//check whether Name contains or not
System.out.println("Yes");//If array contains the given input then Yes
else
System.out.println("No");//Otherwise No
}
您的代码将只检查字符串数组中的第一个单词meansTom
。如果要检查数组中的每个单词,请使用for
循环。如果您输入mary
,则它将与Tom
进行比较,因此请回答否
while(sc.hasNext())
{
name= sc.next();
String [] Str=name.split(",");
for(String s: Str){
if (Name.equals(s))
{
System.out.println("Yes");
}
else
{
System.out.println("No");
}
}//for missed. otherwise it will check only the first word in the String array
}
编辑:
还有一种检查方法
while(sc.hasNext())
{
name= sc.next(); //get each line from text file
String [] Str=name.split(",");
if(Arrays.asList(Str).contains(Name))//check whether Name contains or not
System.out.println("Yes");//If array contains the given input then Yes
else
System.out.println("No");//Otherwise No
}
试试这个,它管用
public static void main(String[] args) throws IOException
{
Scanner sc = new Scanner (new FileReader("name.txt"));
String Name;
Scanner in = new Scanner(System.in);
System.out.println("Enter a name:");
Name= in.nextLine();
String name = null;
name= sc.next();
String [] Str=name.split(",");
int flag=0;
for(String sd:Str)
{
if (Name.equals(sd))
{
flag=1;
break;
}
else
{
continue;
}
}
if(flag==1)
System.out.println("yes");
else
System.out.println("no");
}
}
试试这个,它管用
public static void main(String[] args) throws IOException
{
Scanner sc = new Scanner (new FileReader("name.txt"));
String Name;
Scanner in = new Scanner(System.in);
System.out.println("Enter a name:");
Name= in.nextLine();
String name = null;
name= sc.next();
String [] Str=name.split(",");
int flag=0;
for(String sd:Str)
{
if (Name.equals(sd))
{
flag=1;
break;
}
else
{
continue;
}
}
if(flag==1)
System.out.println("yes");
else
System.out.println("no");
}
}
不,但是我输入了mary,这是文本文件的第二个值,它会打印“No”,我不知道为什么java区分大小写,Name
不是Name
的同义词。你错过了for
循环。不,但是我输入了mary,这是文本文件的第二个值,它会打印“No”,我不知道为什么Java区分大小写,Name
不是Name
的同义词。您错过了for
循环。我尝试了,但代码将打印Yes-No-No-No-NoSince它(Name)与字符串数组中的每个值进行比较。请参阅我的编辑。我尝试了,但代码将打印Yes-No-No-NoSince它(Name)正在和字符串数组中的每个值进行比较。请参阅我的编辑。