String类

一、String类

字符数组转为字符串、判断字符串是否为空库函数、判断两个字符串是否相等库函数

        String str=new String("hello1");
        String str1="hello2";
        char[] value={'a','b','l','l'};
        String str3=new String(value);//数组转字符串
        System.out.println(str3);
        System.out.println(str3.isEmpty());//判断字符串是否为空
        System.out.println(str.equals(str1));//判断str字符串是否等于str1字符串

二、比较长度compareTo函数

字符相等,返回两个字符串相减的差值,字符不相等,返回两个字符相减的差值(ASCII相加减)

         String str1=new String("prokect");
         String str2=new String("Prokectasdad");
        System.out.println(str1.compareTo(str2));//按照字典序比较,大于返回正数,小于返回负数
        System.out.println(str1.compareToIgnoreCase(str2));//忽略大小写比较长度

 三、获取字符串某个字符

        System.out.println(str1.charAt(0));//拿到下标为0的字符
        int ch=str2.indexOf('a');//返回第一次出现a的字符下标
        System.out.println(str2.indexOf('a',2));//从2下标开始搜索字符a,返回下标
        System.out.println(str2.indexOf("kect"));//在主串中查找子串返回k的下标
        System.out.println(str2.lastIndexOf('s'));//从后往前搜索字符s

 四、字符串和数字之间相互转换、用子字符串替换主字符串中部分字符串

public static void main3(String[] args) {
        String str1=String.valueOf(123);//将整型转变为字符串
        String str2=String.valueOf(12.122);//浮点数转变字符
        System.out.println("_______________");
        String str3="1999";
        //字符转数字
        int data=Integer.parseInt(str3);
        System.out.println(data);
        //变大写
        String str4=new String("alert");
        System.out.println(str4.toUpperCase());
        //变小写
        String str5="MAINtain";
        System.out.println(str5.toLowerCase());
        //字符串转数组
        char[] array=str5.toCharArray();
        //替换字符
        String str6=new String("QuesTion");
        String ret=str6.replace('Q','R');
        //在字符中用R替换q,区分大小写
        System.out.println(ret);
        //替换子串
        String str7=new String("Commitment");
        String ret2=str7.replace("Com","Cat");
        System.out.println(ret2);
    }

 五、分割字符以及注意使用两个转义字符使特殊符号被识别,如 '.'

public static void main4(String[] args) {
        String str="He is vigorously";
        String[] ret=str.split(" ",2);//以空格为分隔符
        // 将字符串分割成2个字符串,用字符串数组接收
        for (int i = 0; i < ret.length; i++) {
            System.out.println(ret[i]);
        }
        String str1="192.168.0.1";
        String[] ret2=str1.split("\\.",4);//需要用两个转义字符转义'.'
        for (int i = 0; i < ret2.length; i++) {
            System.out.println(ret2[i]);
        }
    }

 六、字符串截取

public static void main5(String[] args) {
        String str="abcdefg982";
        //返回从2位置开始截取的所有字符
        String s=str.substring(2);
        System.out.println(s);
        //截取从下标2开始到下标6的字符串,左闭右开
        String s1=str.substring(2,6);//[2,6)
        System.out.println(s1);
    }

public static void main(String[] args) {
        
        String str1="abcd";
        String str2="abcd";
        System.out.println(str1==str2 );//比较时两个字符串在字符串常量池搜寻,结果返回true

        String str3="hello";
        //新创建一个对象,再把这个对象指向字符串常量池
        String str4=new String("hello");
        System.out.println(str3==str4);//结果返回false
    }

 七、字符串拼接

//字符串拼接
    public static void main7(String[] args) {
        String str=new String("abcdef");
        str +="ghf";
        System.out.println(str);
    }

 java中StringBuffer和StringBuild

StringBuffer和StringBuild都是在原来的对象上进行修改,而String是在新一个对象上进行修改然后返回这个对象给String类型的对象

//StringBuilder和StringBuffer
    public static void main9(String[] args) {
        //都在同一个对象修改
        //StringBuffer和StringBuilder是可变的
        StringBuilder stringBuilder=new StringBuilder("abc");
        System.out.println(stringBuilder);
        //逆置字符串
        stringBuilder.reverse();
        System.out.println(stringBuilder);
        //添加字符
        stringBuilder.append("123").append(99);
        stringBuilder.append("19.9");
        System.out.println(stringBuilder);//输出结果1239919.9,为字符串
        //String变为StringBuilder
        String ret=stringBuilder.toString();//使用toString方法转变

    }

八、在字符串中寻找第一次出现的字母,返回它的下标

public int firstUniqChar2(String s) {
        //小写字母ASCII值从97开始,26个字母长度为123
        int[] count=new int[26];
        //字符的ASCII值对应数组下标
        for (int i = 0; i < s.length(); i++) {
            char ch=s.charAt(i);//获取字符串s的每个元素
            count[ch-'a']++;//字符的ASCII值++
        }
        //再次遍历,返回下标(索引)
        for (int i = 0; i < s.length(); i++) {
            //s字符串从下标0开始遍历
            char ch=s.charAt(i);
            if (count[ch-'a']==1){//count数组亦从字母的ASCII-'a'开始遍历
                return i;//返回索引
            }
        }
        //运行到此处说明没有进入if循环
        return -1;
    }

 九、求字符串最后一个单词的长度

从后往前寻找空格,返回最后一个空格的下标,然后从该下标+1的位置截取后面字符,统计长度

public static int pursuitLen(){
        Scanner in=new Scanner(System.in);
        while(in.hasNextLine()){
            String str=in.nextLine();
            int index=str.lastIndexOf(' ');//获取最后一个空格的下标
            String ret=str.substring(index+1);
            System.out.println(ret.length());
            return ret.length();
        }
        return -1;
    }

 十、判断字符串是否回文

    //判断是否回文字符
    public boolean isPalindrome(String s) {
        s.toLowerCase();//全变小写
        int left=0;
        int right=s.length()-1;
        while(left<right){
            //不是字符就进入该循环
            while (left<right&&!isvalue(s.charAt(left))){
                left++;
            }
            //left为有效字符
            while(left<right&&!isvalue(s.charAt(right))){
                right--;
            }
            //right为有效字符
            if (s.charAt(left)!=s.charAt(right)){//不相等返回false
                return false;
            }else {//相等左下标和右下标移动
                left++;
                right--;
            }
        }
        //循环走完不进false,则返回true
        return true;
    }
    public boolean isvalue(char ch){
        
        return Character.isLetter(ch)||Character.isDigit(ch);//使用库函数检查字符是否为数字或字母
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值