String/Integer类常用方法总结

[size=small] 刚刚混迹在前沿的java江湖没多久,Sring的大名就已经如雷贯耳,据小道消息透露,java实例中60%的操作都是针对的字符串,对于它的真实性,小弟就无从考究了,毕竟,江湖总需要传言嘛!今天仔细的看了一下String类的API文档,果然名不虚传,茫茫多的构造器方法,可见其强大之处!由于能力的限制,小菜我只能对一些常用的方法进行简单的总结,希望大家多多指点。[/size]
[size=small]首先,要注意一点String类是一个final类,也就是说[color=red]它是一个终态类,不能被继承[/color]。其次它有繁多的构造器方法,对数组操作来说很方便,是具体情况而定,在这里就不一一赘述了。[/size]
[size=small] 下面是一些常用方法总结:
1.equals()——将此字符串与指定的字符串比较,返回一个boolean值。[/size]
 public static void main(String[] args){
String st1="hello";
String st2="world";
String st3="hello";
System.out.println("st1与str2是否相等,相等则为true,否则为false,结果为:"+st1.equals(st2));
System.out.println("st1与str3是否相等,相等则为true,否则为false,结果为:"+st1.equals(st3));
}

[size=small] 输出结果如下:[/size]
st1与str2是否相等,相等则为true,否则为false,结果为:false
st1与str3是否相等,相等则为true,否则为false,结果为:true

[size=small] 下面我们再来看另一个例子:[/size]
public static void main(String[] args){
String st1=new String("hello");
String st2=new String("hello");
Object obj1=new Object();
Object obj2=new Object();
System.out.println("st1与str2是否相等,相等则为true,否则为false,结果为:"+st1.equals(st2));
System.out.println("obj1与obj2是否相等,相等则为true,否则为false,结果为:"+obj1.equals(obj2));

}

[size=small] 输出结果为:[/size]
st1与str2是否相等,相等则为true,否则为false,结果为:true
obj1与obj2是否相等,相等则为true,否则为false,结果为:false
[size=small]至于输出结果的区别,大家可以参照一下Object类与String类中equals()方法![/size]
[size=small] 2.compareTo()——按字典顺序比较两个字符串,返回两个字符串在相同索引k处的char值之差。[/size]
public class StringMethods {
public static void main(String[] args){
String st1="a";
String st2="b";
String st3="bcd";
int n=st1.compareTo(st2);
int m=st1.compareTo(st3);
System.out.println("st1-st2="+n);
System.out.println("st1-st3="+m);
}
[size=small]请看结果:[/size]
st1-st2=-1
st1-st3=-1

[size=small] 如果没有字符不同的索引位置,则较短字符串的字典顺序在较长字符串之前。在这种情况下,compareTo 返回这两个字符串长度的差。代码如下:[/size]
public static void main(String[] args){
String st1="bc";
String st2="b";
String st3="bcd";
int n=st1.compareTo(st2);
int m=st2.compareTo(st3);
System.out.println("st1-st2="+n);
System.out.println("st1-st3="+m);
}

[size=small]请看结果:[/size]
st1-st2=1
st1-st3=-2

[size=small]3.indexOf(int ch)——返回字符序列中第一次出现该字符的索引;如果未出现该字符,则返回 -1。
4.substring(int beginIndex, int endIndex)——将一个字符串拆分成新的字符串(子字符串)并返回。
5.replace(char oldChar, char newChar)——将newChar替代oldChar,返回新字符串。
我们将三个方法组合起来,代码如下:[/size]
public static void main(String[] args){
String s = "have a good time!/come from...";
System.out.println("操作前的字符串为:"+s);
int index = s.indexOf('/');
System.out.println("/出现的位置为:"+index);
String str = s.substring(0, index);
System.out.println("拆分后的字符串为:"+str);
str = str.replace("time", "life");
System.out.println("替换后的字符串为:"+str);
}

打印结果:
操作前的字符串为:have a good time!/come from...
/出现的位置为:17
拆分后的字符串为:have a good time!
替换后的字符串为:have a good life!

[size=small] 对于字符串的方法还有很多很多,我只是把我经常遇到的方法罗列了一下,但其他的方法还是要多加了解,这样应用起来才会得心应手!
进制的转换一度让我很头疼,学习了Integer之后,这类问题就相对比较简单了。我们来看看里面的两个方法。
1.parseInt(String s, int radix)——使用第二个参数指定的基数,将字符串参数解析为有符号的整数。
我们举一个二进制转十进制的例子。[/size]
public static void main(String[] args){
String str="00001000";
byte b=(byte) Integer.parseInt(str, 2);
System.out.println("b="+b);
String str1="11111111";
byte b1=(byte) Integer.parseInt(str1, 2);
System.out.println("b1="+b1);
}

[size=small]请看结果:[/size]
b=8
b1=-1

[size=small] 对于b=8,我们不难理解,2的三次方,但是b=-1,理解起来就不是那么简单了。其实也不难,我们知道parseInt返回一个[color=red]有符号的整数[/color],首先“1111 1111”是个有符号的整数,我们要求其结果,符号位不变其余为取反加一就可以了。
2.toBinaryString——以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式。基本上是parseInt的逆运算,返回数为无符号数。[/size]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值