String类的常见方法的使用

字符串的特点

  • String字符串不变:字符串的值在创建后不能被更改
string s = "abc";  "abc"这个字符串存到了方法区,是一个常量。
String str3 = new String("abc");和  
String str4 = "abc";的区别

字符数组字节数组和字符串的转换

重要:使用构造方法把字符数组转换成字符串

char[] chs = {'a','b','c','d'};
String s = new String(chs);
//使用构造方法截取字符数组部分元素,将他转成字符串   String(字符数组,start,length);
String s1 = new String(chs, 1, 3);

重要:使用构造方法把字节数组转换成字符串

byte[] bytes = new byte[]{65,66,67,68};
String s2 = new String(bytes);

//使用构造方法截取节数组部分元素,将他转成字符串   String(字节数组,start,length);
String s3 = new String(bytes, 0, 2);
String s1 = new String(chs, 1, 3);
  • 使用创建对象的方法建立字符串,每一次 new 都会申请一个内存空间,虽然内容相同,但是地址值不同
  • 直接赋值的方法建立字符串,无论出现几次,JVM只建立一个对象。

string和比较有关的一些方法

  • 字符串比较
  • 字符串大小写转换
  • 判断字符串开头和结尾
/*
    字符串比较
        ==  比较地址值
       boolean equals(Object obj) 重写Object的equals方法 比较内容
       boolean equalsIgnoreCase() 忽略大小写比较内容


    字符串大小写转换
       String  toUpperCase()  转大写
       String  toLowerCase()  转小写

    判断字符串开头和结尾
        boolean startsWith(String s) 判断是否以s开头
        boolean endsWith(String s) 判断是否以s结尾

 */
public class Demo04_String {
    public static void main(String[] args) {
        String s1 = "hello world";
        String s2 = "Hello World";

        System.out.println(s1 == s2);
        System.out.println(s1.equals(s2));
        System.out.println(s1.equalsIgnoreCase(s2));


        //将s1转换为大写的字符串
        String toUpperCase = s1.toUpperCase();
        System.out.println(toUpperCase);
        System.out.println(s1);


        //将toUpperCase 转换为小写的字符串
        String s = toUpperCase.toLowerCase();
        System.out.println(s);

        System.out.println("---------------------------");
        String file = "Hello.Java";

        //判断这个文件 是不是java文件  也就是判断字符串是否以.java结尾
        if(file.toLowerCase().endsWith(".java")){
            System.out.println("java文件");
        }else{
            System.out.println("不是java文件");
        }
    }
}

string 获取的一些方法

  • int length()
  • charAt(int index)
  • indexOf(int c)
  • indexOf()
/*
     字符串的获取方法

        int  length() 获取字符串长度  数组长度 length属性   集合长度 size()方法 字符串长度length()方法
        char  charAt(int index) 根据索引返回字符串中字符  字符串索引从0开始 如果给的索引不存在 抛出字符串索引越界异常



      int  indexOf(int c)   根据字符 返回第一次出现的索引
      int  indexOf(int c ,int fromIndex)  根据字符 返回第一次出现的索引 可以指定开始索引


      int  indexOf(String str)   根据字符串 返回第一次出现的索引
      int  indexOf(String str ,int fromIndex)  根据字符串 返回第一次出现的索引 可以指定开始索引



       int lastIndexOf(int ch)  返回指定字符在此字符串中最后一次出现处的索引。
       int lastIndexOf(int ch, int fromIndex)

       int lastIndexOf(String str)  返回指定子字符串在此字符串中最右边出现处的索引。
       int lastIndexOf(String str, int fromIndex)


 */
public class Demo05_String {
    public static void main(String[] args) {
        String s = "我的心里话:hello world!";



        //将字符串转换为字符数组 再遍历字符数组
        char[] chs = s.toCharArray();
        for (int i = 0; i < chs.length; i++) {
            System.out.println(chs[i]);
        }

        System.out.println("--------------------");

        //字符串遍历
        for(int i = 0 ;i<s.length();i++){
           char c =  s.charAt(i);
            System.out.println(c);
        }

        System.out.println("-------------------------");

        String str = "helloworld";


        //获取字符l在str中第一次出现的索引位置
        int index = str.indexOf('l');
        System.out.println(index);

//        //如果字符不存在 返回-1
//        int i = str.indexOf('a');
//        System.out.println(i);

        //获取字符l在str中第二次出现的索引位置
        int index2 = str.indexOf('l', index + 1);
        System.out.println(index2);

        //获取字符l在str中第三次出现的索引位置
        int index3 = str.indexOf('l', index2 + 1);
        System.out.println(index3);

        System.out.println("------------------------------");

        String string = "helloabcworldabcabc";



        int abcIndex = string.indexOf("abc");
        System.out.println(abcIndex);

        int abcIndex2 = string.indexOf("abc", abcIndex + "abc".length());
        System.out.println(abcIndex2);


    }
}

string 截取字符串、去头尾空格

  • substring()
  • trim()
import java.util.Scanner;

/*
     String substring(int start) 截取字符串  从start到末尾
     String substring(int start , int end) 截取字符串 从start开始 到end结束 包含开始不包含结束

     String trim();  去掉字符串 两端的空格或者制表符

 */
public class Demo06_String {
    public static void main(String[] args) {
        String str = "abcde";

        String substring = str.substring(1);
        System.out.println(substring);

        String substring1 = str.substring(1, 4);
        System.out.println(substring1);


        String str2 = " a   b     ";
        String trim = str2.trim();
        System.out.println(str2);
        System.out.println(trim);


        Scanner sc = new Scanner(System.in);
        System.out.println("请输入您的用户名");
        String username = sc.nextLine();

        String[] usernameArr = {"liuyan","admin"};
        for (int i = 0; i < usernameArr.length; i++) {
            if(usernameArr[i].equals(username.trim())){
                System.out.println("用户名已经存在");
            }
        }
    }
}

string replace和split函数

/*
     String replace(char oldChar, char newChar)   将字符串中老的字符 替换为新的字符
     String replace(String oldString, String newString)


     String[] split(String regex)  将字符串切割为字符串数组
 */
public class Demo07_String {
    public static void main(String[] args) {
        String s = "helloabc worldabc";

        //将s中的 o 替换成 e
        String str = s.replace('o', 'e');
        System.out.println(str);


        //将s中的abc 替换成 bcd
        String replace = s.replace("abc", "bcd");
        System.out.println(replace);

        System.out.println("-------------------------");
        String names = "柳岩----唐嫣-金莲-------大郎";

        String[] nameArr = names.split("-+");

        for (int i = 0; i < nameArr.length; i++) {
            System.out.println(nameArr[i]);
        }

    }
}

stringbuilder的使用

  • public StringBuilder()
  • public StringBuilder(String str)
  • append
  • toString()
package com.doit.demo02;
/*
     java.lang.StringBuffer    线程安全   效率低

     java.lang.StringBuilder   线程不安全 效率高
          构造方法
             public StringBuilder() 创建一个空的容器
             public StringBuilder(String str)  创建一个有str的字符串缓冲区
          方法
           StringBuilder  append(Object obj)
           String toString();

           StringBuidler reverse(); 将字符串缓冲区中的内容 反转

 */
public class Demo01_StringBuilder {
    public static void main(String[] args) {
    	//将StringBuilder 转化成String
        StringBuilder sb = new StringBuilder("abc");

        String s = sb.append(true).append(3.14).append("ccc").append(new Object()).toString();
        System.out.println(s);

        System.out.println("------------------------------------");
        
        String str = "hello world";

        String string = new StringBuilder(str).reverse().toString();
        System.out.println(string);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值