五 Java 字符串 包装类

论坛 期权论坛 脚本     
已经匿名di用户   2022-5-29 19:15   1514   0

一 字符串

String

创建String对象的三种方法:

  • String s1="123";
  • String s2=new String();
  • String s3=new String("ab");

String 对象创建后则不能被修改,是不可变的,所谓的修改其实是创建了新的对象,所指向的内存空间不同。

String s1="123";

String s4="123";

//多次出现的字符常量,JAVA编译程序只创建一个,所以返回true

String s2=new String("123");

String s3=new String("123");//每次 new 一个字符串就是产生一个新的对象

System.out.println(s1==s4);

//s2和s1是不同的对象,所以返回false

System.out.println(s2==s1);

//s2和s3是不同的对象,所以返回false

System.out.println(s3==s2);
String s1="123";

String s2="I love"+s1;

String s3="I love"+s1;

// s1是变量,s3在运行时才知道具体值,所以s2和s3是不同的对象

System.out.println(s3==s2);

可以存储字符串的类

  1. String
  2. StringBuilder
  3. StringBuffer

使用String时,当频繁操作字符串时,就会额外产生很多临时变量。使用 StringBuilder 或 StringBuffer 就可以避免这个问题。

  • StringBuilder 和StringBuffer ,它们基本相似,不同之处,StringBuffer 是线程安全的,而 StringBuilder 则没有实现线程安全功能,所以性能略高。因此一般情况下,如果需要创建一个内容可变的字符串对象,应优先考虑使用 StringBuilder 类。
StringBuilder s1=new StringBuilder();

StringBuilder s2=new StringBuilder("test");

StringBuilder

二 包装类

为了让基本数据类型也具备对象的特性, Java 为每个基本数据类型都提供了一个包装类,这样我们就可以像操作对象那样来操作基本数据类型。

包装类主要提供了两大类方法:

  1. 将本类型和其他基本类型进行转换的方法
  2. 将字符串和本类型及包装类互相转换的方法

Integer包装类的常用方法

手动装箱与自动装箱

int i=10;

Integer x=new Integer(i);//手动装箱

Integer y=i;//自动装箱



Integer x1=new Integer(8);

int y1=x1;//自动拆箱为int类型
int y2=x1.intValue();//手动装箱

基本类型转换为字符串有三种方法

  1. 使用包装类的 toString() 方法
  2. 使用String类的 valueOf() 方法
  3. 用一个空字符串加上基本类型,得到的就是基本类型数据对应的字符串
 int c=10;

 String str1=Integer.toString(c);

 String str2=String.valueOf(c);

 String str3=c+"";

将字符串转换成基本类型有两种方法

1. 调用包装类的 parseXxx 静态方法

2. 调用包装类的 valueOf() 方法转换为基本类型的包装类,会自动拆箱

String str="8";

int d=Integer.parseInt(str);

int e=Integer.valueOf(str);

三 日期类

SimpleDateFormat 类

可以使用 SimpleDateFormat 来对日期时间进行格式化,如可以将日期转换为指定格式的文本,也可将文本转换为日期。

    //将日期转为指定格式的文本  
     Date d=new Date();

     SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

     String today=sdf.format(d);


    //将文本转换为日期
     String time="2020年8月27日 09:42:04";

     SimpleDateFormat sdf2=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");

     Date d2=sdf2.parse(time);

调用 SimpleDateFormat 对象的 parse() 方法时可能会出现转换异常,即 ParseException ,因此需要进行异常处理。

Date 类最主要的作用就是获得当前时间,同时这个类里面也具有设置时间以及一些其他的功能,但是由于本身设计的问题,这些方法却遭到众多批评,不建议使用,更推荐使用 Calendar 类进行时间和日期的处理。

Calendar 类

java.util.Calendar 类是一个抽象类,可以通过调用 getInstance() 静态方法获取一个 Calendar 对象,此对象已由当前日期时间初始化,即默认代表当前时间,如 Calendar c = Calendar.getInstance();

    Calendar c=Calendar.getInstance();

     System.out.println(c);

     int year=c.get(Calendar.YEAR);//Calendar.Year 等为 Calendar 类中定义的静态常量。

     int month=c.get(Calendar.MONTH)+1;//获取月份,0表示一月份

     int day=c.get(Calendar.DAY_OF_MONTH);//获取日期

     int hour=c.get(Calendar.HOUR_OF_DAY);//获取小时

     int minute=c.get(Calendar.MINUTE);

     int second=c.get(Calendar.SECOND);

     System.out.println(year+"-"+month+"-"+day+" "+hour+":"+minute+":"+second);

Calendar 类提供了 getTime() 方法,用来获取 Date 对象,完成 Calendar 和 Date 的转换,还可通过 getTimeInMillis() 方法,获取此 Calendar 的时间值,以毫秒为单位。

     Date date=c.getTime();//将Calendar对象转换为Date对象

     System.out.println(date);

     Long time2=c.getTimeInMillis();//获取当前毫秒数

     System.out.println(time2);

从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和分析日期字符串。因为Date的设计具有"千年虫"以及"时区"的问题,所以Date中的大部分方法已经不建议使用了,它们都被java.util.Calendar类所取代

四 Math类

Math 类位于 java.lang 包中,包含用于执行基本数学运算的方法, Math 类的所有方法都是静态方法,所以使用该类中的方法时,可以直接使用类名.方法名,如: Math.round();

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:81
帖子:4969
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP