• 【java】String类常见操作


    秋招做题需要,总结String类常用api如下:

    简单的:str.length()、str.isEmpty()、str.split(“;”)切割

    1.字符串反转:借助StringBuilder/StringBuffer,(常用StringBuilder类,因为快)

    // 字符串反转
        public static String reverseString(String str) {
            StringBuffer sBuffer = new StringBuffer(str);
            String string = sBuffer.reverse().toString();
            return string;
        }

    2.截取字符串:substring()方法

    substring(int beginIndex, int endIndex)

    第一个int为开始的索引,对应String数字中的开始位置,第二个是截止的索引位置,对应String中的结束位置

    从beginIndex开始取,到endIndex结束,下标从0开始,取出的字符串不包括endIndex位置的字符

    public static void main(String[] args) {
            String str = "abcdefgh";
            //substring(int beginIndex, int endIndex)
            //从beginIndex开始取,到endIndex结束,不包括endIndex位置的字符
            String res = str.substring(1, 3);
            System.out.println(res);
        }

    输出:bc

    3.删除字符串中的前几个数据:substring()方法【也就是保留某个数据以后的数据】

    public static void main(String[] args) {
        String str1 = "abcdefghqwertyui";
        //取索引为8往后的字符串(包含索引为8的字符)
        //也就是删除索引0-7的前8个数据
        String res1 = str1.substring(8);
        System.out.println(res1);
    }

    输出:

    qwertyui

    4.截取字符串的后几位:substring()方法

    public static void main(String[] args) {
            String str1 = "abcdefghqwertyui";
            //取出最后两位
            String res1 = str1.substring(str1.length()-2);
            System.out.println(res1);
        }

    输出:

    ui

    5.遍历字符串中的每一个字符:charAt()方法、toCharArray()方法          感觉两种方法差别不大,习惯其中一个方法就行

    (1)charAt()方法返回指定索引位置的char值

    把遍历出来的char拼成一个新的字符串

    public static void main(String[] args) {
            String str1 = "0123456";
            String res = "";
            for (int i = 0; i < str1.length(); i++) {
                char everyWord = str1.charAt(i);
                //当想要某一些不连续的字符拼成新的字符串的时候:
                //需要用到--把取出的char拼成字符串
                if(i%2==0) {
                    res = res +everyWord;
                }
            }
            System.out.println(res);
        }

    输出

    0246

    (2)toCharArray()方法

    toCharArray()方法:将字符串对象中的字符转换为一个字符数组

    public static void main(String[] args) {
            String str1 = "0123456";
            String res = "";
            char[] charArray = str1.toCharArray();
            for (int i = 0; i < charArray.length; i++) {
                if (i % 2 == 0) {
                    res = res + charArray[i];
                }
            }
            System.out.println(res);
    
        }

    输出

    0246

    6.字符串中是否包含另一个字符串 indexOf()方法、contains()方法

    indexOf()方法:返回要匹配的字符串第一次出现的索引的位置,没出现过返回-1

    contains()方法:判断是否包含指定字符串,包含返回true,不包含返回false

    lastIndexOf()方法: 要匹配的字符串最后一次出现的索引

    public static void main(String[] args) {
            String str1 = "0123456";
            int firstIndex = str1.indexOf("34");
            System.out.println(firstIndex);//字符3的下标
            boolean flag = str1.contains("56");
            System.out.println(flag);
        }

    输出

    3
    true

    7.判断两个字符串中的内容是否相同:equals()方法

    public static void main(String[] args) {
            String str1 = "0123456";
            String str2 = "0123456";
            boolean flag = str1.equals(str2);
            System.out.println(flag);
        }

    输出

    true

    equalsIgnoreCase() 判断两个字符串是否是一样的(可以忽略字母大小写)

    public static void main(String[] args) {
            String str1 = "A0123456";
            String str2 = "a0123456";
            boolean flag1 = str1.equals(str2);
            boolean flag2 = str1.equalsIgnoreCase(str2);
            System.out.println(flag1);
            System.out.println(flag2);
        }

    输出

    false
    true

    8.移除字符串的空格:trim()方法

    trim()方法:移除字符串两边的空格

    public static void main(String[] args) {
            String str1 = "  A0123456  ";
            String str2 = str1.trim();
            System.out.println(str2);
        }

    输出

    A0123456

    移除任意位置的空格

    public static void main(String[] args) {
            String str = "  1 2 3 4 5   ";
            System.out.println(StringDemo.removeSpace(str));
            System.out.println(StringDemo.removeSpace2(str));
            
        }
        
        //自己写一个可以去除字符串任意位置空格的方法
        //运用toCharArray()
        public static String removeSpace(String str) {
            String strRes = "";
            char[] charArray = str.toCharArray();
            for (char c : charArray) {
                if (c!=' ') {
                    strRes=strRes+c;
                }
            }
            return strRes;
        }
        
        //运用charAt()
        public static String removeSpace2(String str) {
            String strRes = "";
            for (int i = 0; i < str.length(); i++) {
                char c = str.charAt(i);
                if (c!=' ') {
                    strRes=strRes+c;
                }
            }
            return strRes;
        }


    9.字符串是否以指定字符串开头、结尾:startsWith()、endsWith()

    public static void main(String[] args) {
            String str = "wsmOffers";
            boolean flag1 = str.startsWith("wsm");
            boolean flag2 = str.endsWith("Offers");
            boolean flag3 = str.endsWith("wsm");
            System.out.println(flag1);
            System.out.println(flag2);
            System.out.println(flag3);
        }

    输出

    true
    true
    false

    10.把该字符串转换成 小写字符串:toLowerCase()、把该字符串转换成 大写字符串:toUpperCase()

    public static void main(String[] args) {
            String str = "wsmOffers";
            String res1 = str.toUpperCase();
            String res2 = str.toLowerCase();
            System.out.println("res1="+res1);
            System.out.println("res2="+res2);
        }

    输出

    res1=WSMOFFERS
    res2=wsmoffers

    11.把任何类型的数据转换成字符串类型

    (1)方法1:前面也用到过,任何类型的数据,拼接一个字符串就会变成字符串

    个人感觉这种方法适用于一个字符一个字符的拼接中

    public static void main(String[] args) {
            String str = "01234";
            String res = "";
            for (int i = 0; i < str.length()-2; i++) {
                char everyWord = str.charAt(i);
                //字符串拼接的方法
                res = res +everyWord;
            }
            System.out.println(res);
        }

    输出

    012

    (2)方法2:valueOf()

    静态类型的方法,直接类名.方法        int--->String

    public static void main(String[] args) {
            int a = 123;
            String res = String.valueOf(a);
            System.out.println(res);
        }

    String--->int

    public static void main(String[] args) {
            //String--->int
            String str = "123";
            int num = Integer.valueOf(str);
            System.out.println(num);
        }

    12.补充:把char转换为int类型

    public static void main(String[] args) {
            String str = "0123";
            for (int i = 0; i < str.length(); i++) {
                char num = str.charAt(i);
                //char转int
                int num0101 = (int) num - (int) '0';
                System.out.println(num0101);
            }
        }

    13.在该字符串中,将给定的旧字符,用新字符替换、将给定的旧字符串,用新字符串替换

    replace(s1,s2),用字符串s1代替原字符串中的s2

    如果找不到就输出原字符串

    public static void main(String[] args) {
            String str = "wsmOffers";
            //可以替换字符
            String res1  = str.replace('w', 'q');
            //可以替换字符串
            String res2 = str.replaceAll("Offers", "BATJTMD");
            //找不到就输出原字符串
            String res3 = str.replaceAll("offers", "BATJTMD");
            System.out.println("res1="+res1);
            System.out.println("res2="+res2);
            System.out.println("res3="+res3);
        }

    输出

    res1=qsmOffers
    res2=wsmBATJTMD
    res3=wsmOffers

    刷题过程中遇到什么再补充…

  • 相关阅读:
    LoadRunner
    LoadRunner
    LoadRunner
    LoadRunner
    Python
    hadoop for .Net
    MVC初学
    MVC初学
    android学习---面试一
    android学习---progressbar和ratingbar
  • 原文地址:https://www.cnblogs.com/yuange678/p/10623439.html
Copyright © 2020-2023  润新知