• 初学杂文 String类


    String:

        

        两个字符床  String stra 和String strb

        stra = "hello " ;  strb = "hello "

        在对象池中开辟一块内存"hello " stra与strb都指向同一块地址。

         字符串的不可改变性
      在JavaAPI文档中我们可以看到String类的定义:

    public final class String extends Object implements Serializable, Comparable<String>, CharSequence

      String类是一个final类,这代表一个String对象是不可改变的,String类的方法中我们也找不到任何能够改变字符串的值和长度的方法。这就是字符串的不可改变性。

      当我们进行连接字符串操作的时候,Java虚拟机没有改变其中任何一个字符串,而是创建了一个新的String对象,把连接后的结果赋予了它。 Sun将String设计成不可改变的,这是为了让String的行为最优化。因为String在多数应用中都被大量使用,所以它的优化是非常关键的。

      

        如果用   == 则比较两个字符串的地址是否一样。

        用 stra.equals(str2) 则是比较两个字符串的内容是否一致。

        

        2.compareTo()

        如果两个字符串的长字符串的前几位是短字符串,则返回长字符串-段字符串的长度差。

        如果两个字符串某个字符不同,则返回两个字符的ascll差

        相等则返回 0;

       String str1 = "hello" ;
            String str2 = "hellow";
            String str3 = "ha" ;
            
            System.out.println("str1.compareto(str2)"+str1.compareTo(str2));//长度差
            System.out.println("str2.comperto(str2)"+ str3.compareTo(str3));//字符差

        结果:

          -1

          0

        3.获取字符串的第 i 个字符  charAt();

        例:System.out.println(str1.charAt(0));    结果:  h

        4.String concat(String str) :将该String对象与str连接在一起。

         

        5.查找

         String str = "helloworld" ;
            //返回满足条件的单词的第一个字母的索引
            System.out.println(str.indexOf("world"));
            //返回查到的的意义个字母索引
            System.out.println(str.indexOf("l"));
            System.out.println(str.indexOf("l",3));
            
            //从后面开始后查找
            System.out.println(str.lastIndexOf("l"));

        //返回bool值
            System.out.println(str.contains("ll"));

      //是否以某些单词开头呢

        String str = "helloworld" ;
            System.out.println(str.startsWith("he")) ;
            System.out.println(str.startsWith("ll",2));
            System.out.println(str.endsWith("ld"));

         6.替换

        public class Test{
        public static void main(String args[])
        {  String str = "helloworld";
            String resultA = str.replaceAll("l","_");//全部替换
            String resultB = str.replaceFirst("l","_") ;//替换首个
            System.out.println(str);
            System.out.println(resultA);
            System.out.println(resultB);
        }
    }

      7.字符串截取

       String str = "helloworld" ;
            String str1 =str.substring (0,5);  //从第 0 个开始截取  5个字符
            String str2 =str.substring (5); //第五个开始截取到末尾
            System.out.println(str1);
            System.out.println(str2);

        
    输出结果:

        hello

        world

        8.字符串拆分

       String str = "helloworld nihao mldn" ;
            String result [] = str.split("  ") ; //中间是一个空格就按照空格拆分,如果引号中间什么都没                      有则按照每个字母拆分

       String result [] = str.split(" ",2) ;//如果能拆好多个,则按照limit(2)最多拆成2个

       String str = "192.168.1.1" ; //IP地址拆分,,如果是敏感字符拆分字符(正则标记)使用                    (\.)拆分。
            String result [] = str.split("\.") ;
      9 其他方法

      

      System.out.println(stra.toUpperCase());  //字符转为大写
          System.out.println(stra.toLowerCase());//字符转为小写字母

          System.out.println(stra.trim()) ;//去掉字符串两边的空格,用处就是,用户输入的时候可能        两边会输入不必要的空格 

    · str.length()//获得字符的长度,,与数组的*.length 不同

     str.isEmpty()) //是否字符串为空

    10.遗憾

    String 少了一个功能,首字母大写,其余字母小写的功能。

    只能自己写

        String str = "hELLo";
             System.out.println(initcap(str));       
             
        }
        public static String initcap(String temp)
        {
            return temp.substring(0,1).toUpperCase() + temp.substring(1).toLowerCase() ;
        }

  • 相关阅读:
    梅森数 洛谷p1045
    高精度算法
    并查集(算法)
    各种背包模板
    爬虫作业
    numpy、scipy、pandas、matplotlib的读书报告:
    体育竞技分析羽毛球
    聊斋相关的分词,出现次数最高的20个
    在终端输出如下信息,(两种以上方法)
    7段数码管绘制
  • 原文地址:https://www.cnblogs.com/da-peng/p/5054753.html
Copyright © 2020-2023  润新知