我先输入几个字符串,然后再输入一个字符串,然后让它和前面输入的字符串进行比较,统计和它不一样的个数,输出c,
求大神看看下面的代码为什么实现不了。
import java.util.Scanner;
public class Untitled{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
String[] names = new String[10000];
int c=0;
while (input.hasNext()) {
int n = input.nextInt();
for (int i=0;i<=n;i++) {
names[i] = input.nextLine();
}
String a=input.nextLine();
for (int i=0;i<n;i++) {
if ((a.equals(names[i]))==false)
{
c=c+1;
}
}
System.out.print(c);
}
}
嗯对是多组输入,因为是做作业;
用了这个还是不行,总是我上买呢输了几个字符串就出几个
for (int i=0;i<=n;i++) {
目测你应该是i<n
while (input.hasNext())
这个不知道什么意思,你有多组输入?
if ((a.equals(names[i]))==false)
可以简化
if (!a.equals(names[i]))
虽然想回答一下这个问题,无奈连题目描述都不清楚。至少要有区别两部分输入的东西啊
names[i] = input.nextLine(); name[0]是换行,names[1]才是你输入的字符串
对比的时候for (int i=0;i<n;i++) { //i=1到i=n对比就可以了,你原来的少对比了一个
if ((a.equals(names[i]))==false)
{
import java.util.Scanner;
public class M {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int c = 0;
// 需要比较字符串的个数
int n = input.nextInt();
// 需要比较的字符串
String[] names = new String[n];
for (int i = 0; i < n; i++) {
names[i] = input.nextLine();
}
// 字符串
String a = new String();
a = input.nextLine();
for (int i = 0; i < n; i++) {
if (!a.equals(names[i])) {
c++;
}
}
System.out.println("" + c);
}
}
//这个就可以了,主要next()和nextLine()是有区别的。next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。文字解释来自百度。
import java.util.Scanner;
public class M {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int c = 0;
// 需要比较字符串的个数
int n = input.nextInt();
// 需要比较的字符串
String[] names = new String[n];
for (int i = 0; i < n; i++) {
names[i] = input.nextLine();
}
// 字符串
String a = new String();
a = input.nextLine();
for (int i = 0; i < n; i++) {
if (!a.equals(names[i])) {
c++;
}
}
System.out.println("" + c);
}
public class M {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int c = 0;
// 需要比较字符串的个数
int n = input.nextInt();
// 需要比较的字符串
String[] names = new String[n];
for (int i = 0; i < n; i++) {
names[i] = input.next();
}
// 字符串
String a = new String();
a = input.next();
for (int i = 0; i < n; i++) {
if (!a.equals(names[i])) {
c++;
}
}
System.out.println("" + c);
}
}
自己打印一下那个数组看看跟你想的有什么不同,代码是先往数组里面添加值,再触发输入的。