Java中有关String的学习笔记

Character.isLetterOrDigit(char);

1. 区别三种初始化

那些看起来空的String

String str1 = new Sring();
String str2 = "";
String str3 = null;
str1和str2都分配了实际内存空间,都有值。不同在于,前者的值是绝对的空,后者值是相对的空(空字符串)。

str3没有分配内存空间,无值。

2. 判断string是否为空

最安全的写法是:(str 是String类型的一个自定义对象名)

str == null || str.isEmpty()

str.length() == 0与str.isEmpty()等价,jdk 1.6以后的版本就开始支持String.isEmpty(),jdk 1.5不支持。

对于null的字符串,用str.isEmpty()会报空指针异常(NullPointerException)

3. 合理利用String, StringBuilder, StringBuffer

String是字符串常量,字符串长度不可变(immutable)

StringBuilder是字符串变量,非线程安全

StringBuffer是字符串变量,是线程安全的(synchronized)

参考:http://blog.csdn.net/kingzone_2008/article/details/9220691

StringBuilder在需要频繁改变字符串的,且单线程时,最佳选择,用.append代替‘+’,输出时要.toString()


Leetcode Problem--Reverse Words in a String

public String reverseWords(String s) {
     String[] parts = s.trim().split("\\s+");
     StringBuilder out = new StringBuilder("");
     for(int i = parts.length-1; i>0; i--){
         out.append(parts[i] + " ");
     }
     out.append(parts[0]);
     return out.toString();
}


4. 例题

Leetcode Problem--Valid Palindrome


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值