前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java中关于String类型的10个问题

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

作者头像
神秘的寇先森
发布2018-05-30 16:32:58
8770
发布2018-05-30 16:32:58
举报
文章被收录于专栏:Java进阶之路Java进阶之路
  1. 如何比较两个字符串?用“==”还是equals “==”是用来检测两个引用是不是指向内存中的同一个对象,而equals()方法则检测的是两个对象的值是否相等。只要你想检测俩字符串是不是相等的,你就必须得用equals()方法。

  1. 为什么安全敏感的字符串信息用char[]会比String对象更好? String对象是不可变的,这就意味着直到java垃圾回收器回收之前它们都不会发生变化的。用数组的话,就可以很明确的修改它任何位置的字符元素。这样的话,如密码等安全敏感的信息就不会出现在系统的任何地方。
  2. 字符串对象能否用在switch表达式中? 从JDK7开始的话,就可以在switch条件表达式中使用字符串了,7之前的版本是不可以的。
代码语言:javascript
复制
switch (str.toLowerCase()) {
      case "a":
           value = 1;
           break;
      case "b":
           value = 2;
           break;
}
  1. 如何将字符串转换为整型数值? int n = Integer.parseInt("10");
  2. 如何用空格去分隔字符串? 使用正则表达式来进行分隔。“\s”就表示空格,还有如””,”\t”,”\r”,”\n”
代码语言:javascript
复制
String[] strArray =Str.split("\\s+");
  1. substring()方法具体是都干了些啥? 在JDK6中,这个方法只会在标识现有字符串的字符数组上 给一个窗口来表示结果字符串,但是不会创建一个新的字符串对象。 因此,如果需要创建个新字符串对象,可以这样在结果后面+一个空的字符串: str.substring(m, n) + "" 这么写的话就会创建一个新的字符数组来表示结果字符串。同时,这么写也有一定的几率让你的代码跑的更快,因为垃圾回收器会吧没有在使用的大字符串回收而留下子字符串。 JDK7中的substring()方法会创建一个新的字符数组,而不用之前存在的。

  1. String&StringBuilder&StringBuffer 这三个里面: StringBuilder和StringBuilder是可变的,这就意味你在创建对象之后还可以去修改它的值 StringBuffer和StringBuffer相比较:StringBuffer是同步的,意味着它是线程安全的,但是就会比StringBuilder慢些。

  1. 如何快速重复构造一段字符串? 利用 Apache Commons lang3包中的StringUtils类的repeat()方法。
代码语言:javascript
复制
String repeated = StringUtils.repeat(str,3);
    //运行结果:abcdabcdabcd
  1. 如何将时间格式的字符串转换成Date对象?
代码语言:javascript
复制
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

10.如何计数一个字符在某个字符串中出现的次数? 使用Apache Commons lang3包中的 StringUtils类就可以完成这个工作。

代码语言:javascript
复制
int  n=StringUtils.countMatches("11112222", "1");
System.out.println(n);

说到StringUtils工具类,我们在页面输入框之后,提交表单到后台,封装参数之后要判断有没有输入,用if(args!=null)直接判断没有利用StringUtils工具类的isNotBlank(args)方法来得好,因为输入框即使没有输入,如果用模型驱动接收的时候,传递到后台的值不一定是Null,有时候是空字符串,这时候用StringUtils.isNotBlank(args)更合适,不会出现错误的现象。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.12.21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档