String常用方法

1、equals():比较两个字符串是否相等
它具有如下的一般形式:boolean equals(Object str)
str是一个用来与调用字符串(String)对象做比较的字符串(String)对象。如果两个字符串具有相同的字符和长度,它返回true,否则返回false。这种比较是区分大小写的。
2、equalsIgnoreCase( ):忽略大小写的两个字符串是否相等比较
当比较两个字符串时,它会认为A-Z和a-z是一样的。
其一般形式如下:boolean equalsIgnoreCase(String str)
str是一个用来与调用字符串(String)对象做比较的字符串(String)对象。如果两个字符串具有相同的字符和长度,它也返回true,否则返回false。
3、toString():转换成String类型
Object object = getObject();
System.out.println(object.toString());
注意:必须保证object不是null值,否则将抛出NullPointerException异常。
采用这种方法时,通常派生类会覆盖Object里的toString()方法。
4、String:转换成String类型
(String)object:这是标准的类型转换,将object转成String类型的值。
注意:类型必须能转成String类型。因此最好用instanceof做个类型检查,以判断是否可以转换。否则容易抛出CalssCastException异常。
因定义为Object 类型的对象在转成String时语法检查并不会报错,这将可能导致潜在的错误存在。
如: Object obj = new Integer(100);
String strVal = (String)obj;
在运行时将会出错,因为将Integer类型强制转换为String类型,无法通过。
但是, Integer obj = new Integer(100);
String strVal = (String)obj;
如是格式代码,将会报语法错误。此外,因null值可以强制转换为任何java类类型,(String)null也是合法的。
5、String.valueOf():转换成String类型(不用担心object是否为null值这一问题)
注意:当object为null 时,String.valueOf(object)的值是字符串”null”,而不是null。
6、split():分隔符
1、如果用“.”作为分隔的话,必须是如下写法,String.split("\.")
2、如果用“|”作为分隔的话,必须是如下写法,String.split("\|")
“.”、“|”、"" 和"+“都是转义字符,必须得加”\";
3、如果在一个字符串中有多个分隔符,可以用“|”作为连字符,比如,“acount=? and uu =? or n=?”,把三个都分隔出来,可以用String.split(“and|or”);
例如:String[] aa = “aaa|bbb|ccc”.split("\
");
for (int i = 0 ; i <aa.length ; i++ ) {
System.out.println("–"+aa[i]);
}
7、subString():截取字符串中的一段字符串
String str;
(1)str=str.substring(int beginIndex);
截取掉str从首字母起长度为beginIndex的字符串,将剩余字符串赋值给str;
(2)str=str.substring(int beginIndex,int endIndex);
截取str中从beginIndex开始至endIndex结束时的字符串,并将其赋值给str;
8、charAt():返回指定索引处char值
public char charAt(int index)
char s = str.charAt(1);
9、toLowerCase():将所有在此字符串中的字符转化为小写(使用默认语言环境的规则)
public String toLowerCase()
String newStr = str.toLowerCase();
10、indexOf():指出 String 对象内子字符串的开始位置
1、int indexOf(String str) :返回第一次出现的指定子字符串在此字符串中的索引。
2、int indexOf(String str, int startIndex):从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引。
3、int lastIndexOf(String str) :返回在此字符串中最右边出现的指定子字符串的索引。
4、int lastIndexOf(String str, int startIndex) :从指定的索引处开始向后搜索,返回在此字符串中最后一次出现的指定子字符串的索引。
注意:如果没有找到子字符串,则返回-1。
如果 startindex 是负数,则 startindex 被当作零。如果它比最大的字符位置索引还大,则它被当作最大的可能索引。
例如:String s = “xXccxxxXX”;
// 从头开始查找是否存在指定的字符 //结果如下
System.out.println(s.indexOf(“c”)); //2
// 从第四个字符位置开始往后继续查找,包含当前位置
System.out.println(s.indexOf(“c”, 3)); //3
//若指定字符串中没有该字符则系统返回-1
System.out.println(s.indexOf(“y”)); //-1
System.out.println(s.lastIndexOf(“x”)); //6
11、replace和replaceAll
(1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串);
(2)replaceAll的参数是regex,即基于规则表达式的替换,比如:可以通过replaceAll("\d", “")把一个字符串所有的数字字符都换成星号;
相同点:都是全部替换,即把源字符串中的某一字符或字符串全部换成指定的字符或字符串;
不同点:(1)replaceAll支持正则表达式,因此会对参数进行解析(两个参数均是),如replaceAll("\d", "
”),而replace则不会,replace("\d","*")就是替换"\d"的字符串,而不会解析为正则。
(2)“\”在java中是一个转义字符,所以需要用两个代表一个。例如System.out.println( “\” ) ;只打印出一个""。但是“\”也是正则表达式中的转义字符,需要用两个代表一个。所以:\\被java转换成\,\又被正则表达式转换成\,因此用replaceAll替换“\”为"\",就要用replaceAll("\\","\\\\"),而replace则replace("\","\\")。
(3)如果只想替换第一次出现的,可以使用replaceFirst(),这个方法也是基于规则表达式的替换,但与replaceAll()不同的是,只替换第一次出现的字符串。
说到正则表达式,有个例子就能很好的解释replaceAll的用法。即替换空格
String test = “wa n\tg_p\te\tn g”;
test = test.replaceAll("\t|\\t|\u0020|\u3000", “”);//去掉空格
System.out.println(test);
其中test = test.replaceAll("\t|\\t|\u0020|\u3000", “”)
与test = Pattern.compile("\t|\\t|\u0020|\u3000").matcher(test).replaceAll("")
是等效的,
因此用正则表达式仅仅是替换全部或替换第一个的话,用replaceAll或replaceFirst即可。

  • 15
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花落时节

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值