Java中关于String类型的8个问题


21套精品Java架构师高并发高性能高可用分布式集群教程(4000G)

39阶段精品云计算大数据项目实战视频教程

200本经典编程相关书籍下载

互联网技术(java框架分布式集群)干货视频大全

程序员如何制作高质量的简历【视频+真实简历】

34张史上最全IT架构师技术知识图谱

23种设计模式视频教程汇总整理

1. 字符串对象能否用在switch表达式中?

从JDK7开始的话,我们就可以在switch条件表达式中使用字符串了,也就是说7之前的版本是不可以的。

// java 7 only!
switch (str.toLowerCase()) {      
       case "a":           
           value = 1;           
           break;      
       case "b":           
           value = 2;           
           break;
     }

2. 如何将字符串转换为整型数值?

int n = Integer.parseInt("10");

如此简单,经常使用有偶尔也会被遗忘。

3. 如何用空格去分隔字符串?

我们可以很便捷的使用正则表达式来进行分隔。“\s”就表示空格,还有如””,”\t”,”\r”,”\n”.

String[] strArray = aString.split("\\s+");

4. substring()方法具体是都干了些啥?

在JDK6中,这个方法只会在标识现有字符串的字符数组上 给一个窗口来表示结果字符串,但是不会创建一个新的字符串对象。如果需要创建个新字符串对象,可以这样在结果后面+一个空的字符串:

str.substring(m, n) + ""

这么写的话就会创建一个新的字符数组来表示结果字符串。同时,这么写也有一定的几率让你的代码跑的更快,因为垃圾回收器会吧没有在使用的大字符串回收而留下子字符串。

Oracle JDK7中的substring()方法会创建一个新的字符数组,而不用之前存在的。看看这张图就会明白substring()方法在JDK6和JDK7中的区别。

5. String&StringBuilder&StringBuffer

String vs StringBuilder:StringBuilder是可变的,这就意味你在创建对象之后还可以去修改它的值。StringBuilder vs StringBuffer:StringBuffer是同步的,意味着它是线程安全的,但是就会比StringBuilder慢些。

6. 如何快速重复构造一段字符串?

在Python编程中,只需要用字符串去乘以一个数字就可以 搞定了,那在Java编程中,我们可以使用来自Apache Commons Lang包中的StringUtils类的repeat()方法。

String str = "abcd";
String repeated = StringUtils.repeat(str,3);//abcdabcdabcd

7. 如何将时间格式的字符串转换成date对象?

String str = "Sep 17, 2013";Date date = new SimpleDateFormat("MMMM d, yy", Locale.ENGLISH).parse(str);
System.out.println(date);//Tue Sep 17 00:00:00 EDT 2013

8. 如何计数一个字符在某个字符串中出现的次数?

使用Apache Commons Lang包中的 StringUtils类就可以完成这个工作。

int n = StringUtils.countMatches("11112222", "1");
System.out.printl```  n(n);
转自::http://www.codeceo.com/article/top-10-questions-of-java-strings.html

点击加入java开发者交流群【欢迎入群】

视频资源下载

21套精品Java架构师高并发高性能高可用分布式集群教程(4000G)

39阶段精品云计算大数据项目实战视频教程

200本经典编程相关书籍下载

互联网技术(java框架分布式集群)干货视频大全

程序员如何制作高质量的简历【视频+真实简历】

专注互联网热点信息,java干货,行业最新技术视频分享,我们的宗旨就是做全网最全最大的java视频教免费平台。我们有适合不同阶段人群的干货。我们的平台聚焦了几万的java高级程序员和架构师。欢迎长按关注

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值