String类的学习(一)

[img]http://dl2.iteye.com/upload/attachment/0112/6602/264b5365-723a-35be-9e43-3a72658d18d9.png[/img]

前面这里主要介绍了一下String类的一些特点还有它的一些方法,比如检查,搜索,比较两个字符串的内容,截取字符串,提取子串,把整个字符串拷贝转换成大写字母或者小写字母,还有一些特殊的支持把其他类型对象转换成字符串类型。
实现 java.io.Serializable 接口,使得String能够序列化。

String类的一些构造方法就是把子数组的值复制给新的字符串
[img]http://dl2.iteye.com/upload/attachment/0112/6604/dccc94df-8c08-3a91-9503-288a154f47fa.png[/img]
这是其中一个构造方法的例子
value - 作为字符源的数组。
offset - 初始偏移量。
count - 长度。
如果 offset 和 count 参数索引字符超出 value 数组的范围,会抛出越界错误IndexOutOfBoundsException

[color=red]String类中常用的一些方法,一些操作:[/color]
使用+运算符可以将两个String对象连接成一个新的字符串,如果+运算符的其中一个操作数为String或字面量时,编译器会将该操作解释成字符串串联,
并将非String对象的操作数转换成一个字符串。
[img]http://dl2.iteye.com/upload/attachment/0112/6606/a126ed77-577a-3350-80c4-94cc0c75a100.png[/img]
[color=darkblue]输出结果很有意思:[/color]
[img]http://dl2.iteye.com/upload/attachment/0112/6610/f5a44cda-1d17-3743-96ac-1d3d4303448f.png[/img]
我们知道+运算符从左到右的结合性,[color=blue]第一个myString从左到右先执行5+5,执行结果为10,再把10和最右边的字符串进行+运算,10转换成String类型,再和右边的String类型操作数执行+运算[/color]。
第二个myString从左至右执行,每次+运算时总有一个操作数是String类型,因此输出的结果就成了:fifty is :55.


charAt(int index)
返回指定索引处的 char 值。索引范围为从 0 到 length() - 1。序列的第一个 char 值位于索引 0 处,第二个位于索引 1 处
[color=red] String str="abcd";
String str2=new String("efg"); //这两种方式都能创建String类型的对象,
String str3="ABCD";
String str4="abcd";//str,str2,str3,str4在下文中都会用到
char s=str.charAt(1);
System.out.println(s);//这里输出的值为b,也就是字符串中的第二个字符[/color]


字符串比较:
[img]http://dl2.iteye.com/upload/attachment/0112/6612/f0b473f9-7c07-3031-bc3c-3e34ecdbd00e.png[/img]
如果按字典顺序此 String 对象位于参数字符串之前,则比较结果为一个负整数。如果按字典顺序此 String 对象位于参数字符串之后,则比较结果为一个正整数。如果这两个字符串相等,则结果为 0;compareTo 只在方法 equals(Object) 返回 true 时才返回 0
System.out.println(str.compareTo(str2));//输出结果为-4
System.out.println(str.compareTo(str4));//输出结果为0


equals:
是继承于Object类的一个方法,String类重写了这个方法,比较两个字符串值是否相等
[img]http://dl2.iteye.com/upload/attachment/0112/6614/c5f909f7-c539-311f-9d23-c11e4be81bc2.png[/img]
只要两个字符串值相等就行,==比较的是地址,equals在Object中定义的也是比较地址,String重写了这个方法。可以看到源代码中,String先看是不是字符串本身,是本身的话直接返回true,然后再看长度是不是相等,长度相等的情况下逐个比较每个字符是否对应相等。


[color=red]compareToIgnoreCase(String str)按字典顺序比较两个字符串,不考虑大小写。[/color]

根据指定 String 大于、等于还是小于此 String(不考虑大小写),分别返回一个负整数、0 或一个正整数
System.out.println(str.compareToIgnoreCase(str3));//str3为ABCD,输出结果为0


equalsIngnoreCase:String类中定义的方法,和上面那个方法用法和功能都相同
[img]http://dl2.iteye.com/upload/attachment/0112/6617/c54040a1-43a2-3785-8c75-835b07920e5f.png[/img]


concat(String str)将指定字符串连接到此字符串的结尾
[img]http://dl2.iteye.com/upload/attachment/0112/6619/d54dd67d-9eca-3792-99c8-e5ad11782573.png[/img]
示例: "cares".concat("s") returns "caress"
"to".concat("get").concat("her") returns "together"
System.out.println(str.concat(str2));//输出abcdefg

contains(CharSequence s) 如果此字符串包含 s,则返回 true,否则返回 false
boolean b=str2.contains("e");
System.out.println(b);//str2为efg,输出结果为true

String类中还有很多其他的方法,因为待会要去上课,先写这么点,改天写续集,哈哈。写得很凌乱,有时间再把这些整理一下。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值