我有一个Java代码,如果没有传递任何元素字符串,它应该不打印。目前,我的方法是传递所有测试但是没有元素字符串的那个。它给了我error.Code在下面。欢迎任何建议
public static void printLetters(String text)
{
System.out.print(text.charAt(0));
for(int i=1;i<text.length();i++)
{
System.out.print("-" + text.charAt(i));
}
System.out.println();
}
答案 0 :(得分:1)
我的猜测就是你的异常弹出
System.out.print(text.charAt(0));
如果传递空字符串,代码将尝试访问0
处的字符。在空字符串中没有第0个字符。
这样的支票可能适合你:
public static void printLetters(String text)
{
if (text != null && text.length() != 0)
{
System.out.print(text.charAt(0));
for(int i=1;i<text.length();i++)
{
System.out.print("-" + text.charAt(i));
}
}
System.out.println();
}
答案 1 :(得分:1)
如果您通过null
,则应该给您NullPointerException,因为您在检查text
之前是否取消引用null
并取消引用null结果为NPE
。
if(text != null){
return;
}
对于空字符串测试,您可以执行以下操作
if(text.isEmpty()){
System.out.println(text);
}
答案 2 :(得分:0)
你可以简单地添加一个if语句来检查text
变量是否为null,如果是,则返回。
此外,您可以移除第一个System.out.print(text.charAt(0));
并进行更改,以便for循环从i = 0
开始
public static void printLetters(String text)
{
if (text == null)
{
return;
}
for(int i = 0; i < text.length(); i++)
{
System.out.print(text.charAt(i) + ",");
}
System.out.println();
}
答案 3 :(得分:0)
您遇到此问题的原因是因为如果您有一个具有空指针的字符串,则charAt(0)将自动抛出NullPointerException。尝试首先评估字符串是否具有null pointet,如果不是,则可以继续使用charAt(0)和其他操作。