Object迁移到字符串的几种形式
在java项目的实际开发和应用中,往往需要将对象转换为字符串的基本功能。 本文就常用的转换方法进行总结。 常见的方法包括Object.toString (),String )要转换的对象,string.valueof ) object。 让我们逐一分析这些方法。
方法1:采用 Object.toString()方法
请看以下示例:
Object object=getObject (;
system.out.println (object.tostring ();
在此用法中,public方法. toString ()已存在于java.lang.Object类中,因此可以对严格意义上的java对象调用此方法。 但是,必须确保object不是null值才能使用。 否则,会抛出NullPointerException异常。 采用这种方法时,派生类通常复盖Object的toString ()方法。
方法2:采用类型转换(String)object方法
这是标准类型转换,将对象转换为字符串类型的值。 请注意,使用此方法时,类型必须能够转换为字符串类型。 因此,最好在instanceof中进行类型检查,以确定是否可以转换。 容易抛出CalssCastException异常。 还应注意,定义为Object类型的对象可能存在潜在错误,因为语法检查在迁移到String时不会报告错误。 这个时候要特别注意。 例如:
objectobj=newinteger(100;
字符串strval=(字符串) obj;
由于强制将整数类型转换为字符串类型,因此在运行时会发生错误。 但是,
集成器obj=new integer (100;
字符串strval=(字符串) obj;
对于格式代码,将报告语法错误。
(字符串) null也是有效的,因为null值可以强制转换为任何java类类型。
方法3:采用String.valueOf(Object)
string.valueof(object )的基础是Object.toString )。 但是,它又不同于Object.toString ()。 在上述方法1的分析中,在使用第一个时需要保证不是null。 但是,第三种方法不需要担心对象是否为null值。 为了便于说明问题,让我们分析一下相关的源代码。 Jdk的string.valueof(object )源代码如下。
//*
* returnsthestringrepresentationoftheobjectargument。
*
* @param obj an Object。
* @return if the argument is null,then a string equal to
* 'null '; otherwise,the value of
*obj.tostring(isReturned。
* @see java.lang.Object.toString (
*/
publicstaticstringvalueof (objectobj ) {
返回(obj==null )? ' null' : obj.toString (;
}
通过上面的源代码,可以很好地理解为什么不用担心空值。 但是,这也给我们带来了危险。 请注意,如果object为null,则String.valueOf(object )的值为字符串' null '而不是null! 使用中请注意。 想想看,如果我们
if(string.valueof(object )==null ) )。
{
System.out.println (“传入的值为null! ();
}
这样的句子可能会出现什么问题。 输出到控制台时,请考虑以下语句在视觉上执行的结果如何不同:
system.out.println (string.value of (null );
系统. out.println (null );
我们看到的输出将是一模一样的。 null,它们是同一意思吗?
判断一个字符串为空s是字符串,如何确定为空: if(null==s||'.equals ) (…) ) )。
注意:此处的null==s和' '.equals(s )不应写为s==null和s.equals (s )。 “”的值已经确定,而s是未知的,所以如果不小心使用,就会出现s.equals )“,但前面有if(null==s ),而习惯于在那里使用使用固定值处理问题的非恒定equals方法(包括许多其他处理)比未确定的处理错误少。
String类型和Date类型的相互转换
3358 www.Sina.com/strings=' 2007-06-2110336050336050 ';
jva.text.simpledateformatformatdate=new Java.text.simple date format (' yyyy-mm-ddhh 3360 mm 3360 ss ' );
Java.util.datedate=format date.parse (s; Date 将String转换为Date:
string.value of (日期;
将Date转换为String我最近在学习Java,但是在工作中经常遇到一些小问题。 百度之后,找到问题的解决方法后,请记录下来哦。 否则,在我脑子里,一定会忘记的。 呵呵。 我想得到系统的时间,但不需要日期。 只要有时间就好了,百度出来的都有日期和时间方案,没有单独只有时间的例子。 思考了一会儿,找到了问题的解决方法。 import java.util.Date;
导入Java.text.date format; 日期now=new date (; //Date (是如何构建java.util.Date类
数据格式d=数据格式. gettime instance (; //getTimeInstance ()获取没有日期的系统时间
stringstr=d.format(now );
system.out.println(Todayis ) str; //输出
注:
1.Date now=new Date (; 其中的Date ) )不是java.sql中的类,而是java.util.Date类的构造方法,因此前面有导入java.util.Date; 不是导入Java.SQL.date; 曾经因为在这里犯了这样低级的错误而发生过编译错误。
2 .日期格式包括getTimeInstance、getDateInstance和getDateTimeInstance,它们是创建日期和时间格式的方法。