zoukankan      html  css  js  c++  java
  • Day14_String概述

    String概述

    • 字符串是常量,创建之后不可改变。
    • 字符串字面值存储在字符串池中,可以共享。
    • String s = "Hello";产生一个对象,字符串池中存储。
    package com.oop.Demo11;
    
    public class Demo03 {
        public static void main(String[] args) {
            String name="name";//"hello"常量存储在字符串池中
            name = "zhangsan";//"zhangsan"赋值给name变量,给字符串赋值时,并没有修改数据,而是重新开辟了一个zhangsan
            String name2 ="zhangsan";//将常量池中的zhangsan的地址赋值给name2
            //System.out.println (name==name2);//true
    
            //演示字符串的另一种创建方式
            String str =new String("java");
            String str2 = new String ("java");//在堆和常量池分别创建对象java,str2指向堆中的地址,堆指向常量池中的数据"java",运行时两个java合并
            System.out.println (str==str2);//false此时比较的是str与str2所存的地址
            System.out.println (str.equals (str2));//true       equals比较的数据
        }
    }
    

    常用方法

    • public int length():返回字符串的长度。

    • public char charAt(int index):根据下标获取字符。

    • public boolean contains(String str):判断当前字符串中是否包含str。

    • public char[] toCharArray() :将字符串转换成数组。

    • public int indexOf(String str):查找str首次出现的下标,存在,则返回该下标;不存在,则返回-1。

    • public int lastIndexOf(String str):查找字符串在当前字符串中最后一次出现的下标索引。

    • public String trim():去掉字符串前后的空格。

    • public String toUpperCase():将小写转成大写。

    • public boolean endWith(String str):判断字符串是否以str结尾。

    • public String replace(char oldChar, char newChar;将旧字符串替换成新字符串

    • public String[]l split(String str):根据str做拆分。

    package com.oop.Demo11;
    
    import java.util.Arrays;
    
    public class Demo03 {
        public static void main(String[] args) {
            String name="name";//"hello"常量存储在字符串池中
            name = "zhangsan";//"zhangsan"赋值给name变量,给字符串赋值时,并没有修改数据,而是重新开辟了一个zhangsan
            String name2 ="zhangsan";//将常量池中的zhangsan的地址赋值给name2
            //System.out.println (name==name2);//true
    
            //演示字符串的另一种创建方式
            String str =new String("java");
            String str2 = new String ("java");//在堆和常量池分别创建对象java,str2指向堆中的地址,堆指向常量池中的数据"java",运行时两个java合并
            System.out.println (str==str2);//false此时比较的是str与str2所存的地址
            System.out.println (str.equals (str2));//true       equals比较的数据
            System.out.println ("-------------字符串方法的使用------------------");
            //字符串方法的使用
            //1、length();返回字符串的长度
            //2、charAt(int index);返回某个位置的字符;
            //3、contains(String str);判断是否包含某个字符
            String content= "java是使用最广泛的语言,java也是最多人使用的,java是目前世界上最好的语言";
            System.out.println (content.length ());
            System.out.println (content.charAt (content.length ()-1));
            //content.charAt (content.length ())不在数组范围内是会报IndexOutOfBoundsException异常,数组越界异常
            System.out.println (content.contains ("java"));//true   字符串包含java吗?true
            System.out.println (content.contains ("php"));//false
            System.out.println ("-------------字符串方法的使用------------------");
            //字符串方法的使用
            //4、toCharArray();返回字符串对应的数组
            //5、indexOf();返回字符串首次出现的位置
            //6、lastIndexOf();返回字符串最后一次出现的位置
            System.out.println (Arrays.toString (content.toCharArray ()));
            System.out.println (content.indexOf ("java"));
            System.out.println (content.indexOf ("java",4));
            System.out.println (content.lastIndexOf ("java"));
            //7、trim();去掉字符串前后的空格
            //8、toUpperCase();把小写转换成大写  toLowerCase();把大写转换成小写
            //9、endWith(str);判断是否以str结尾,startWith(str);判断是否以str开头
            String content2="   Hello  World    ";
            System.out.println (content2.trim ());
            System.out.println (content2.toUpperCase ());
            System.out.println (content2.toLowerCase ());
            String filename="hello.java";
            System.out.println (filename.endsWith (".java"));//true 判断filename字符串是否以.java结尾
            System.out.println (filename.startsWith ("h"));//true   判断filename字符串是否以h开头
    
    
            System.out.println ("-------------字符串方法的使用------------------");
            //10、replace(char old,char new);用新的字符或字符串替换旧的字符或字符串
            //11、split();对字符串进行拆分
            System.out.println (content.replace ("java","ahha"));
            String say="java is the best programing language, java java     ";
            String[] arr=say.split ("[ ,]+");
            System.out.println (arr.length);
            for (String string:arr) {
                System.out.println (string);
            }
            //补充两个方法equals、compareTo();比较大小
            System.out.println ("--------补充-------");
            String s1="hello";
            String s2="HELLO";
            System.out.println (s1.equalsIgnoreCase (s2));//忽略大小写的比较
    
            //compare比较两个字符在编码表中的位置
            String s3="abc";//a的字符97
            String s4="xyz";//x的字符120   如果第一个相等 比较第二对b、y
            System.out.println (s3.compareTo (s4));//-23        (97-120)
    
            String s5="abc";
            String s6="abcxyz";
            System.out.println (s5.compareTo (s6));//-3    比长度(3-6)
        }
    }
    

    案例演示

    • 需求
      • 已知String str = "this is a text" ;
      • 1.将str中的单词单独获取出来
      • 2.将str中的text替换为practice
      • 3.在text前面插入一个easy
      • 4.将每个单词的首字母改为大写

    String型的方法

    char charAt(int index)
    返回索引index位置处的字符。与数组一样,索引也是从头开始依次0、1、2、3...

    package com.oop.Demo11;
    
    public class Demo04 {
        public static void main(String[] args) {
            /*
            - **已知String str = "this is a text" ;**
            - **1.将str中的单词单独获取出来**
            - **2.将str中的text替换为practice**
            - **3.在text前面插入一个easy**
            - **4.将每个单词的首字母改为大写
             */
            String str="this is a text";
            //1.将str中的单词单独获取出来
            String[] arr = str.split (" ");
            System.out.println ("------------1.将str中的单词单独获取出来---------------");
            for (String s:arr) {
                //每次循环取一个字符串出来赋值给s,直到arr数组长度-1结束
                System.out.println (s);
            }
            System.out.println ("------------2.将str中的text替换为practice---------------");
            String str2=str.replace ("text","practice");
            System.out.println (str2);
            System.out.println ("------------3.在text前面插入一个easy---------------");
            String str3= str.replace ("text","easy text");
            System.out.println (str3);
            System.out.println ("-------------4.将每个单词的首字母改为大写--------------");
            for (int i = 0; i < arr.length; i++) {
                /**java里面的for循环的格式:for(String s : arr)
                 *其实本质上和for(int i=0;i<length;i++)没太大区别,但是for(String s : arr)中的arr一定是字符串数组,
                 *每次循环取一个字符串出来赋值给s,直到arr数组长度-1结束。
                 * 
                 * char charAt(int index)
                 * 返回索引index位置处的字符。与数组一样,索引也是从头开始依次0、1、2、3...
                 */
                char first=arr[i].charAt (0);
                //把第一个字符转换成大写
                char upperfirst=Character.toUpperCase (first);
    
                String news=upperfirst+arr[i].substring (1);
                System.out.println (news);
            }
        }
    }
    

  • 相关阅读:
    Leetcode Reverse Words in a String
    topcoder SRM 619 DIV2 GoodCompanyDivTwo
    topcoder SRM 618 DIV2 MovingRooksDiv2
    topcoder SRM 618 DIV2 WritingWords
    topcoder SRM 618 DIV2 LongWordsDiv2
    Zepto Code Rush 2014 A. Feed with Candy
    Zepto Code Rush 2014 B
    Codeforces Round #245 (Div. 2) B
    Codeforces Round #245 (Div. 2) A
    Codeforces Round #247 (Div. 2) B
  • 原文地址:https://www.cnblogs.com/lemonlover/p/14060990.html
Copyright © 2011-2022 走看看