Java教程

java之String类

本文主要是介绍java之String类,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

String 类

  • 字符串是常量,创建之后不可改变
  • 字符串面值存储在字符串池中,可以共享
  • String s = ” hello“; 产生一个对象,字符串池中存储
  • String s = new String( ” hello“);//产生两个对象,堆、池各存储一个

常用方法

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

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

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

  • //        字符串方法的使用
    //         length();  返回字符串的长度
    //        charAt(int index);返回某个位置的字符
    //        contains(String str);判断是否包含某个子字符串
            String content="java是世界上最好的编程语言";
            System.out.println(content.length());
            System.out.println(content.charAt(content.length()-1));
            System.out.println(content.contains("java"));
            System.out.println(content.contains("php"));
    
  • public char[] toCharArray() : 将字符串转换成数组

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

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

  • //        toCharArray(); 返回字符串对应的数组
    //        indexOf();  返回字符串首次出现的位置
    //        lastIndexOf(); 返回字符串最后一次出现的位置
            System.out.println(Arrays.toString(content.toCharArray()));
            System.out.println(content.indexOf("java",5));
            System.out.println(content.lastIndexOf("java"));
    
  • public String trim():去掉字符串前后的空格

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

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

  • //        trim();去掉字符串前后的空格
    //        toUpperCase(); 把小写转成大写 tolowerCase();把大写转成小写
    //        endWith();判断是否已str结尾,starWith(str); 判断是否已str开头
            String content2 = "   WWWhelloworld   ";
            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"));
            System.out.println(filename.startsWith("hello"));
    
  • public String replace(char oldChar,char newChar);将旧字符串替换成新字符串

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

  • //        replace(char old, char new); 用新的字符或字符串替换旧的字符或字符串
    //        split();对字符串进行拆分
            System.out.println(content.replace("java", "php"));
    
            String say = "java is the best programing language,java xiang";
             String[] arr=say.split("[ ,]");
            System.out.println(arr.length);
            for (String string : arr){
                System.out.println(string);
            }
    
    
            System.out.println("------------------------------------------------");
    //        补充两个方法 equals 、 compareTo(); 比较大小
            String s1 = "hello";
            String s2 = "HELLO";
            System.out.println(s1.equalsIgnoreCase(s2));
    
    
            String s3 = "abc";
            String s4 = "xyz";
            System.out.println(s3.compareTo(s4));
    
            String s5 = "abc";
            String s6 = "abcxyz";
            System.out.println(s5.compareTo(s6));
        }
    

案例演示

  • 需求:

    • 已知String str = “this is a text”;

    • 1.将str中的单词单独获取出来

    • 2.将str中的text替换为practice

    • 3.在text前面插入一个easy

    • 4.将每个单词的首字母改为大写

    • public class Demo04 {
          public static void main(String[] args) {
              String str = "this is a text";
      //        1.将str中的单词单独获取出来
              String[] arr = str.split(" ");
              for (String b :arr){
                  System.out.println(b);
              }
      
      //        - 2.将str中的text替换为practice
              String str2 = str.replace("text", "practice");
              System.out.println(str2);
      
      
      //        3.在text前面插入一个easy
              String str3 = str.replace("text", "east text");
              System.out.println(str3);
      
      //        4.将每个单词的首字母改为大写
              for (int i=0;i<arr.length;i++){
                  char first = arr[i].charAt(0);
                  char upperfirst  = Character.toUpperCase(first);
                  String news = upperfirst+arr[i].substring(1);
                  System.out.println(news);
      
              }
          }
      
      }
      

可变字符串

  • StringBuffer :可变长字符串,JDK1.0提供,运行效率慢、线程安全

  • StringBuilder:可变长字符串,JDK5.0 提供,运行效率快、线程不安全

  • package com.kind.chapter_5;
    /*
    StringBuffer 和 StringBuilder的使用
    区别:
    1.效率比String高
    2.比String节省内存
     */
    
    public class Demo05 {
        public static void main(String[] args) {
    //        StringBuffer sb = new StringBuffer();
            StringBuilder sb = new StringBuilder();
    //        1.append();追加
            sb.append("java世界第一");
            System.out.println(sb.toString());
            sb.append("java真香");
            System.out.println(sb.toString());
            sb.append("java不错");
            System.out.println(sb.toString());
    //        2.insert();添加
            sb.insert(0,"我在最前面");
            System.out.println(sb.toString());
    //        3.replace();替换
            sb.replace(0,5,"hello");
            System.out.println(sb.toString());
    //        4.delete();删除
            sb.delete(0,5);
            System.out.println(sb.toString());
        }
    }
    
  • package com.kind.chapter_5;
    /*
    验证StringBuilder效率高于String
     */
    
    public class Demo06 {
        public static void main(String[] args) {
    //        开始时间
            long start = System.currentTimeMillis();
    //        String string = "";
    //        for (int i=0;i<99999;i++){
    //            string+=i;
    //        }
    //        System.out.println(string);
            StringBuilder sb = new StringBuilder();
            for (int i=0;i<99999;i++){
                sb.append(i);
            }
            System.out.println(sb.toString());
            long end = System.currentTimeMillis();
            System.out.println("用时:"+(end-start));
        }
    }
    
这篇关于java之String类的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!