美文网首页程序员
Java中关于String类型的10个问题

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

作者: 寇寇寇先森 | 来源:发表于2017-12-21 00:00 被阅读0次
    1. 如何比较两个字符串?用“==”还是equals
      “==”是用来检测两个引用是不是指向内存中的同一个对象,而equals()方法则检测的是两个对象的值是否相等。只要你想检测俩字符串是不是相等的,你就必须得用equals()方法。

    1. 为什么安全敏感的字符串信息用char[]会比String对象更好?
      String对象是不可变的,这就意味着直到java垃圾回收器回收之前它们都不会发生变化的。用数组的话,就可以很明确的修改它任何位置的字符元素。这样的话,如密码等安全敏感的信息就不会出现在系统的任何地方。
    2. 字符串对象能否用在switch表达式中?
      从JDK7开始的话,就可以在switch条件表达式中使用字符串了,7之前的版本是不可以的。
    switch (str.toLowerCase()) {
          case "a":
               value = 1;
               break;
          case "b":
               value = 2;
               break;
    }
    
    1. 如何将字符串转换为整型数值?
      int n = Integer.parseInt("10");
    2. 如何用空格去分隔字符串?
      使用正则表达式来进行分隔。“\s”就表示空格,还有如””,”\t”,”\r”,”\n”
    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()方法。
    String repeated = StringUtils.repeat(str,3);
        //运行结果:abcdabcdabcd
    
    1. 如何将时间格式的字符串转换成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
    

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

    int  n=StringUtils.countMatches("11112222", "1");
    System.out.println(n);
    

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

    相关文章

      网友评论

        本文标题:Java中关于String类型的10个问题

        本文链接:https://www.haomeiwen.com/subject/qoxowxtx.html