Java 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(

这是我一直在使用的代码,但它适用于不是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(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()