zoukankan      html  css  js  c++  java
  • String常用方法总结

    和长度有关的方法

    返回类型 方法名 作用

    int length() 得到一个字符串的字符个数(一个中文是一个字符,一个英文是一个字符,一个转义字符是一个字符)

    和数组有关的方法

    返回类型 方法名 作用

    byte[] getBytes() 将一个字符串转换成字节数组

    char[] toCharArray() 将一个字符串转换成字符数组

    String[] split(String) 将一个字符串按照指定内容劈开,根据给定正则表达式的匹配拆分此字符串。

    例如:

      String user="张三,1234 13673738888";
      String[] strs = user.split(",| ");//用“逗号”或“空格”进行分割

    和判断有关的方法

    返回类型 方法名 作用

    boolean equals(String) 判断两个字符串的内容是否一模一样

    boolean equalsIgnoreCase(String) 忽略大小写的比较两个字符串的内容是否一模一样

    boolean contains(String) 判断一个字符串里面是否包含指定的内容

    boolean startsWith(String) 判断一个字符串是否以指定的内容开头

    boolean endsWith(String) 判断一个字符串是否以指定的内容结尾

    int compareTo(String ):按字典顺序比较两个字符串的大小,相等返回0,大于返回正数,小于返回负数。

    int compareToIgnoreCase( ):比较两个字符串的大小,不考虑大小写

    和改变内容有关的方法

    和改变内容有关的方法,都不会直接操作原本的字符串 而是将符合条件的字符串返回给我们,所以注意接收

    返回类型 方法名 作用

    String toUpperCase() 将一个字符串全部转换成大写

    String toLowerCase() 将一个字符串全部转换成小写

    String replace(String,String) 将某个内容全部替换成指定内容

    String replaceAll(String,String) 将某个内容全部替换成指定内容,支持正则

    String repalceFirst(String,String) 将第一次出现的某个内容替换成指定的内容

    String substring(int) 从指定下标开始一直截取到字符串的最后,返回一个新的字符串,它是此字符串的一个子字符串。

    String substring(int,int) 从下标x截取到下标y-1对应的元素,返回一个新字符串,它是此字符串的一个子字符串。(左包含右不包含)

    String trim() 去除一个字符串的前后空格

    和位置有关的方法

    返回类型 方法名 作用

    char charAt(int) 得到指定下标位置对应的字符

    int indexOf(String) 得到指定内容第一次出现的下标,如果未出现该字符,则返回 -1。

    int indexOf(int ch,int fromIndex): 在此对象表示的字符序列中第一次出现的大于或等于 fromIndex 的字符的索引;如果未出现该字符,则返回 -1。

    int lastIndexOf(String) 得到指定内容最后一次出现的下标,如果未出现该字符,则返回 -1。

    String方法练习:用不同的方法统计葡萄出现的次数

    public class TestString {
        public static void main(String[]args) {
            String str = "吃葡萄不吐葡萄皮,不吃葡萄倒吐葡萄皮"; //请统计葡萄 出现的次数
            // String str = "葡萄不吐葡萄皮,不吃葡萄倒吐葡萄"; //请统计葡萄 出现的次数
            // 第一种
            String str1 = str.replace("葡萄", " ");
            int index = str.indexOf("葡萄", 4);
            char[]data = str1.toCharArray();
            int count = 0;
            for (char a: data) {
                if (a == ' ') {
                    count++;
                }
            }
            System.out.println(count);
            //第二种
            /*int count = 0;
            int x = 0;
            while (x != -1) {
                x = str.indexOf("葡萄");
                if (x != -1) {
                    count++;
                    str = str.replaceFirst("葡萄", "");
                }
            }
            System.out.println(count);*/
            //第三种
           /* for (int x = 0; x < str.length(); x++) {
                if (str.contains("葡萄")) {
                    str = str.replaceFirst("葡萄", "");
                } else {
                    System.out.println(x);
                    break;
                }
            }*/
            //第四种
            /*String str1 = "葡萄不吐葡萄皮,不吃葡萄倒吐葡萄"; //请统计葡萄 出现的次数
            String[]data = str1.split("葡萄");
            if (!str1.endsWith("葡萄")) {
                //这里startsWith("葡萄")在split时,会在开头产生空串
                System.out.println(data.length - 1);
            } else {
                System.out.println(data.length);
            }*/
            //第五种
            /*int count = 0;
            int x = 0;
            while (x != -1) {
                x = str.indexOf("葡萄");
                if (x != -1) {
                    if ((x + 2) < str.length()) {
                        str = str.substring(x + 2);
                    }
                    count++;
                }
            }
            System.out.println(count);*/
            //第六种
           /* String str2 = str.replace("葡萄", "");
            int length = str2.length();
            System.out.println((str.length() - str2.length()) / 2);*/
        }
    
    }

     练习中文对编码的影响

    public class StringDemo {
        public static void main(String[] args) {
            String s="123456789中国";
            System.out.println(s.length()); //11
            System.out.println(s.getBytes().length);//GBK下是13, UTF-8下是15
            System.out.println(hasChinese(s));
            s="12中国asd湖12南6城市学院";
            print(s);
        }
    
        private static void print(String s) {
            char[] ch=s.toCharArray();
            for(char c:ch){
                if((c+"").getBytes().length>1){//汉字的字节数大于1
                    System.out.println("中文字符:"+c);
                }else if(c>='a'&&c<='z' || c>='A'&& c<='Z'){
                    System.out.println("英文字符:"+c);
                }else if(c>='0'&&c<='9'){
                    System.out.println("数字:"+c);
                }
            }
        }
    
        private static boolean hasChinese(String s) {
            if(s.getBytes().length>s.length()){//只有含有汉字时,字符转换的字节长度才会大于字符串长度
                return true;
            }
            return false;
        }
    }

    练习正则表达式

    public class StringDemo2 {
        public static void main(String[] args) {
            //1、字符串比较大小
            String s1="H234567中国";
            String s2="Hello Java";
            System.out.println("1、"+s1.compareTo(s2));// 返回两个字符串之差(第一个不同字符的差,即‘2’与‘e’的差:   -51)
    
            //2、字符串位置查找
            String s3="adc256sadf";
            String s4="c2";
            System.out.println("2、"+s3.indexOf(s4));//2
    
            //3、查找姓名中带“飞”字的人,查找姓“张”的人。
            String[] names= { "张三", "张无忌", "赵敏", "张飞", "岳飞", "飞龙张" };
            System.out.print("3、带“飞”的人:");
            for(String name:names){
                if(name.indexOf("飞")>=0){
                    System.out.print(name+"  ");
                }
            }
            System.out.println();
            System.out.print("  姓“张”的人:");
            for(String name:names){
                if(name.indexOf("张")==0){
                    System.out.print(name+"  ");
                }
            }
            System.out.println();
    
            // 4、查找扩展名为“.java”的文件名。
            String[] filenames = { "aa.java", "cc.doc", "34.bat", "33.java.c",
                    "java.exe", "c:\a\a.java" };
            String ss=".java";
            System.out.print("4、扩展名为.java文件名:");
            for(String name:filenames){
                if(name.endsWith(ss)){
                    System.out.print(name+"  ");
                }
            }
            System.out.println();
    
            //5、substring()
            String c ="abcd".substring(2,3);//  相当于数学中的:[2,3)
            System.out.println("5、“abcd”.substring(2,3)= "+c);
    
            //6、split()
            String user="张三,1234,13673738888";
            String strs[] = user.split(",");
            System.out.print("6、");
            for(String s:strs){
                System.out.print(s+"  ");
            }
            System.out.println();
            user="张三,1234 13673738888";
            strs = user.split(",| ");//7、用“逗号”或“空格”进行分割
            System.out.print("7、");
            for(String s:strs){
                System.out.print(s+"  ");
            }
            System.out.println();
            user="aa.bb.cc,dd,ee fff";
            strs = user.split("\.|,| ");//8、“.”号是特殊字符,因此要用转义字符,而且要加两个
            //strs = user.split("[.]|,| ");//“[]”也是转义字符
            System.out.print("8、");
            for(String s:strs){
                System.out.print(s+"  ");
            }
            System.out.println();
            String us ="张三|1234|13673738888";
            //strs = us.split("\|");//9、“|”不能用这种转义的方式分割,这种情况下可先采用字符替换
            us=us.replace("|", ",");//replace()返回的是一个新的字符串
            strs = us.split(",");
            System.out.print("9、");
            for(String s:strs){
                System.out.print(s+"  ");
            }
        }
    }
  • 相关阅读:
    Rehosting WWF 设计器
    C#写的ActiveX弹出窗口在Delphi程序中的应用时出现了问题。
    WWF的一些技术细节与应用体会(一)
    字符串编码与未公开的DBCSCodePageEncoding
    WF的一些技术细节与应用体会(三)
    Rehosting WWF Designer 之定制活动的外观
    WWF的一些技术细节与应用体会(二)
    DataJoin: Replicated join using DistributedCache
    MultipleOutputFormat和MultipleOutputs
    DataJoin: Reduceside join
  • 原文地址:https://www.cnblogs.com/leilong/p/8629620.html
Copyright © 2011-2022 走看看