如何使字符串输入不为null

时间:2015-11-20 04:34:10

标签: java null

我正在处理代码以在每行打印上输出时间戳。但是当我为此创建一个方法时,它会自动使字符串为null,然后在每一行打印时间戳AND null。如何阻止它说null但仍打印时间戳?

这是代码和输出:

System.out.println(printTimeStamp()+ " Enter something to write to file...Q to quit ");

private static String printTimeStamp() {
    // TODO Auto-generated method stub
    String printTimeStamp = null; 
    java.util.Date date= new java.util.Date(); {
    System.out.println(new Timestamp(date.getTime()));}
    return printTimeStamp;
}

输出:

2015-11-19 23:28:19.369
null Enter something to write to file...Q to quit 

5 个答案:

答案 0 :(得分:3)

您正在使用null初始化printTimeStamp,而不是在之后分配,并返回相同的值。

修改方法并将值赋给变量printTimeStamp

public static void main(String[] args) {
        System.out.println(printTimeStamp()+ " Enter something to write to file...Q to quit ");
    }

    private static String printTimeStamp() {
        // TODO Auto-generated method stub
        String printTimeStamp = null;
        java.util.Date date = new java.util.Date();
        Timestamp timestamp = new Timestamp(date.getTime());
        System.out.println(new Timestamp(date.getTime()));
        printTimeStamp = timestamp.toString();
        return printTimeStamp;
    }

<强>输出

2015-11-20 10:07:28.279
2015-11-20 10:07:28.279 Enter something to write to file...Q to quit 

答案 1 :(得分:3)

这是因为您通过编写

将变量printTimeStamp设置为null
 String printTimeStamp = null; 

因此,您将返回具有空值的printTimeStamp变量,并且您要按行打印日期,

System.out.println(new Timestamp(date.getTime()));

当您在方法中使用System.out.pritnln时,您不需要为该方法使用返回类型。您可以按以下方式更改方法,

private static void printTimeStamp() {
        // TODO Auto-generated method stub
        String printTimeStamp = null; 
        java.util.Date date= new java.util.Date(); 
        System.out.println(new Timestamp(date.getTime()));


}

如果您想使用返回类型,则可以按如下方式更改方法,

private static String printTimeStamp() {
    // TODO Auto-generated method stub

    java.util.Date date= new java.util.Date(); 
    String printTimeStamp =new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(date.getTime());
    return printTimeStamp;
}

答案 2 :(得分:1)

您将null从方法名称返回为printTimeStamp,因为您尚未为名为printTimeStamp的变量指定任何值。它被声明为null,但未启动。使用以下指定值

String printTimeStamp =new Timestamp(date.getTime());

答案 3 :(得分:0)

修改您的代码,如下所示

    private static String printTimeStamp() {
    // TODO Auto-generated method stub

            java.util.Date date= new java.util.Date(); 
            String printTimeStamp =new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(date.getTime());
    return printTimeStamp;
}

据我所知,您只需要使printTimeStamp()打印当前日期时间。所以最好用我的方式。使用simpledateformat类转换当前日期时间,并以字符串格式返回日期时间。只需创建一个以字符串格式返回日期时间的方法,并在任何地方调用此方法。例如System.out.println(printTimeStamp()+ " Enter something to write to file...Q to quit ");

答案 4 :(得分:0)

printTimeStamp()而不是String printTimeStamp = null;,请使用String printTimeStamp = "";

您在主函数中将null对象添加到String。