gpt4 book ai didi

java - 判断字符串是否是 Pangram 的代码?

转载 作者:行者123 更新时间:2023-12-01 06:27:57 26 4
gpt4 key购买 nike

import java.io.*;
import java.util.*;


public class Solution {

public static final int n = 26;

public int check(String arr) {
if (arr.length() < n) {
return -1;
}
for (char c = 'A'; c <= 'Z'; c++) {
if ((arr.indexOf(c) < 0) && (arr.indexOf((char)(c + 32)) < 0)) {
return -1;
}
}
return 1;
}
}

public static void main(String[] args) {
Scanner s1 = new Scanner(System.in);
String s = s1.next();
Solution obj = new Solution();

int d = obj.check(s);

if (d == -1) {
System.out.print("not pangram");
} else {
System.out.print("pangram");
}
}

如果输入的字符串是:
我们立即评判了古董象牙带扣作为下一个奖项

它将给出错误输出:
不是全语法

我无法找出代码有什么问题。
提前致谢!

最佳答案

问题在于空格Scanner.next()的分隔符。因此,当您输入我们立即判断古董象牙扣为下一个奖品时,s将仅指向字符串We。当您在 We 上调用 obj.check(s) 时,它将返回 -1

要验证情况是否如此,您可以打印 s 并检查其值。您还可以这样做:

String s = "We promptly judged antique ivory buckles for the next prize";

调用obj.check(s)并查看它将返回正确的答案。

要修复此问题,您应该调用 Scanner.nextLine() 而不是 Scanner.next():

String s = s1.nextLine();

关于java - 判断字符串是否是 Pangram 的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29173540/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com