从头开始学java--String类&包装类




一.String类的定义

String类也是一个引用类型,存储字符串。而且自带了若干方法,操作字符串很方便。所以记录一下关于String类的一些知识。

以下是一个例子:

public class StringTest {
	public static void main(String[] args)
	{
		//标准的字符串定义
		String str1 = new String("hello");
		System.out.println(str1);
		//简化定义
		String str2 = "world";
		System.out.println(str2);
	}
}
由于String类比较常用,所以一般都采用简化的定义方式。


String类分析:

public class StringTest2 {
	public static void main(String[] args)
	{
		String str1 = "hello";
		String str2 = "hello";
		String str3 = "hell" + "o";
		System.out.println(str1 == str2);//true
		System.out.println(str1 == str3);//true
		System.out.println(new String("hello") == new String("hello"));//false
		String str4 = "hell";
		String str5 = str4;
		System.out.println(str4 == str5);//true
		str4 += "o";
		System.out.println(str4 == str5);//false
		System.out.println(str4 == "hello");//false
		System.out.println(str4.equals("hello"));//true	
	}
}
结果见注释。

要点:

1.同一字符串在内存中只保存一份,str1,str2指向的是内存中的"hello",只是两个不同的引用型变量,并不是有两个字符串。

2.String类有9种构造方法。详细查看帮助文档。在定义时,如果字符串中有“+”, 会自动优化,合并成一个字符串。

3.new出来的字符串,即使内容相同,也是两个对象,地址不相同。

4.比较两个str ,== 判定的是地址是否相同。判断内容相同与否还是使用equals方法。

5.String类的内容是只读的,如果改变了,就成为了另一个对象。所以才会有System.out.println(str4 == str5);//false


二.String类的常用方法

public class StringTest3 {
	public static void main(String[] args)
	{
		String str1 = "hello1";
		String str2 = "hello2";
		//charAt方法,根据索引项返回字符串中的字符
		System.out.println(str1.charAt(0));//输出为h
		
		//compareTo方法,按照字典法比较字符串,类似与c的strcmp
		// str1 < str2 -1, str1 = str2 0 , str1 > str2 1
		System.out.println(str1.compareTo(str2));//输出为-1
		
		//startWith方法,endWith方法,查询字符串是否以某字串开头或结尾
		System.out.println(str1.startsWith("hell"));//输出为true
		System.out.println(str1.endsWith("1"));//输出为false
		
		//indexOf,lastIndexOf方法,产寻字符串中是否有字串,返回个数
		System.out.println(str1.indexOf("l"));//输出为2
		System.out.println(str1.lastIndexOf("ell"));//输出为1
		
		//subString方法,提取子串
		System.out.println(str1.substring(0, 3));//输出为hel
		
		//String类的静态方法,valueOf,可以将其他类型的变量转化为string类
		int number = 123;
		String str = String.valueOf(number);
		System.out.println(str);
	}
}

用法见注释。

要点:

1.每个方法基本都有重载,对应不同的参数,有不同的操作。

2.还有诸如.length获取长度,concat()连接字符串,replace()字符串替换,toUpperCase(),toLowerCase()大小写转换等方法。

3.StringBuffer类,可以变长的字符串。


三.包装类


虽然java仍然有原始数据类型,但是对应的原始数据类型,java感觉功能不够强大,所以对应的原始数据类型java提供了一些包装类,提供一些方法,可以让我们对其进行操作。

public class Package {
	public static void main(String[] args)
	{
		int value = 100;
		//装箱
		Integer valueobj = value;
		System.out.println(valueobj);
		// 拆箱
		int result = valueobj;
		System.out.println(result);
	}
}

要点:
1.都是数据类型,为什么绕这么大弯子呢?就是把原始数据类型封装成一个对象之后,可以运行包装类的方法,从而达到对数据的操作。
2.包装类 = 基本数据类型 +方法字段
包装类如下图:





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值