Java字符串空字符串处理

时间:2013-10-23 22:47:06

标签: java string

我有一个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();
}

4 个答案:

答案 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)和其他操作。