我应该读入一个字符串,将其转换为小写,然后返回字符串中的第一个字符。如果第一个字符不是字符串,则应该打印f, err := os.Open("config.yml")
if err != nil {
processError(err)
}
var cfg Config
decoder := yaml.NewDecoder(f)
err = decoder.Decode(&cfg)
if err != nil {
processError(err)
}
。
我尝试过:
\0
答案 0 :(得分:0)
在返回变量之前,需要使用char
将String
变量更改为String.valueOf(c)
变量。
String ch = sc.nextLine();
char c = ch.charAt(0);
if (Character.isLetter(c)) {
ch = ch.toLowerCase();
c = ch.charAt(0);
return String.valueOf(c);
}
return String.valueOf('\0');
}
答案 1 :(得分:0)
该异常表示您的扫描仪没有发现要从其源返回的任何内容。 Java中的字符串不同于C字符串,因为它们至少具有一个字符('\ 0')。您可以通过以下附加操作来保护程序免于失败:
try
{
String ch = sc.nextLine();
ch = ch.toLowerCase();
char c = ch.charAt(0);
if (Character.isLetter(c))
{
return c;
}
return '\0';
}
catch(StringIndexOutOfBoundsException ex)
{
System.out.println("You have entered an empty string");
}
}