Java Pangram检查器不工作
这是我一直在使用的代码,但它适用于不是pangram但不是另一种方式的字符串。也适用于具有重复项的字符串Java Pangram检查器不工作,java,pangram,Java,Pangram,这是我一直在使用的代码,但它适用于不是pangram但不是另一种方式的字符串。也适用于具有重复项的字符串 int i; char l,ch; String s=""; Scanner sc= new Scanner(System.in); s=sc.next(); s=s.trim(); int c=0; s=s.toLowerCase(); for (l='a';l<='z';l++) { for(i=0;i<s.length();i++) { ch=s.charAt(
int i;
char l,ch;
String s="";
Scanner sc= new Scanner(System.in);
s=sc.next();
s=s.trim();
int c=0;
s=s.toLowerCase();
for (l='a';l<='z';l++) {
for(i=0;i<s.length();i++) {
ch=s.charAt(i);
if(ch==l) {
c++;
}
}
if(c==0)
break;
else {
c=0;
continue;
}
}
if(l=='z')
System.out.println("pangram");
else
System.out.println("not pangram");
inti;
charl,ch;
字符串s=“”;
扫描仪sc=新的扫描仪(System.in);
s=sc.next();
s=s.修剪();
int c=0;
s=s.toLowerCase();
对于(l='a';l您正在检查循环后l
是否等于z
。
如果句子中除了z
之外的每个字母都存在,那么你会得到一个假阳性,因为l
将等于z
if (l > 'z')
System.out.println("pangram");
...
这里为每个循环增加l
:
for (l='a'; l<='z'; l++)
编辑
sc.next()
将向下一个标记返回字符串。(行尾或空格)
如果您输入,我们会立即判断下一个奖项的古董象牙扣
s
将只包含我们
,因为空格将被视为next()
的“结束标记”。您需要使用sc.nextLine()
。它仍然不起作用。我的测试用例是“我们很快就为下一个奖项评选了古董象牙扣”。这是一个pangram字符串,但我的程序没有显示pangram。这可能是因为您使用的是sc.next()
而不是sc.nextLine()
next()
将向下一个标记返回一个字符串,在本例中该标记是一个空白字符。因此s
将等于We
而不是其他。请改用nextLine()
。