String类

String类指的是java.lang包中的String类
String类中常用的方法

一.常用的构造方法
1.String()
初始化一个新创建的 String 对象,使其表示一个空字符序列。

2.String(byte[] bytes)
通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String。

3.String(byte[] bytes, Charset charset)
通过使用指定的 charset 解码指定的 byte 数组,构造一个新的 String。

4.String(byte[] bytes, int offset, int length)
通过使用平台的默认字符集解码指定的 byte 子数组,构造一个新的 String。

5.String(byte[] bytes, int offset, int length, Charset charset)
通过使用指定的 charset 解码指定的 byte 子数组,构造一个新的 String

二.常用函数
1. char charAt(int index)
返回指定索引处的 char 值。

  1. int compareTo(String anotherString)
    按字典顺序比较两个字符串。

  2. int compareToIgnoreCase(String str)
    按字典顺序比较两个字符串,不考虑大小写

  3. String concat(String str)
    将指定字符串连接到此字符串的结尾。

  4. boolean contains(CharSequence s)
    当且仅当此字符串包含指定的 char 值序列时,返回 true。

6.static String copyValueOf(char[] data)
返回指定数组中表示该字符序列的 String。
static String copyValueOf(char[] data, int offset, int count)
返回指定数组中表示该字符序列的 String。

  1. boolean endsWith(String suffix)
    测试此字符串是否以指定的后缀结束。

8.static String format(Locale l, String format, Object… args)
使用指定的语言环境、格式字符串和参数返回一个格式化字符串。
static String format(String format, Object… args)
使用指定的格式字符串和参数返回一个格式化字符串。

  1. byte[] getBytes(Charset charset)
    使用给定的 charset 将此 String 编码到 byte 序列,并将结果存储到新的 byte 数组。

10.int indexOf(int ch)
返回指定字符在此字符串中第一次出现处的索引。
int indexOf(int ch, int fromIndex)
返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。
int indexOf(String str)
返回指定子字符串在此字符串中第一次出现处的索引。
int indexOf(String str, int fromIndex)
返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。

@test

/*
     * 1、输出String s =“1234567”的长度,
                第3个字符,字节个数
     */
    @Test
    public void demo1(){
        String s = "1234567";
        System.out.println(s.length());
        System.out.println( s.charAt(3) ); //4
        byte b[] = s.getBytes();
        System.out.println(b.length); //7
    }
/*
       2、输出s=“1234567我"的长度,第3个字符,字节个数
     */
    import java.io.IOException;
    @Test
    public void demo2()throws IOException{
        String s="1234567我";
        System.out.println(s.getBytes("gbk").length); //9
        System.out.println(s.getBytes("utf-8").length); //10
    }
/*
     * 3、判断某段字符是否含有汉字(假定只有中英文字符)
     */
    @Test
    public void demo3(){
        String s = "12中34567";
        //判断字符串长度是否和字节数相等
        if( s.length() == s.getBytes().length ){
            System.out.println("没有非ASCII码字符");
        }else{
            System.out.println("包含非ASCII码字符");
        }

        char ch = s.charAt(2);
        System.out.println(ch);//汉字也是一个字符。s.length()就是字符的个数
    }
/*
     * 4、分别输出一个字符串中的中文字符、英文字母、数字
     */
    @Test
    public void demo4(){
        String s = "ba2我中eW343你q4";
        char chs[] = s.toCharArray();
        for(char ch: chs){
            if(ch>='a'&&ch<='z' || ch>='A'&&ch<='Z'){
                System.out.println("英文字母:"+ch);
            }
            if(ch>='0'&&ch<='9'){
                System.out.println("数字:"+ch);
            }
            /*
            if((""+ch).getBytes().length>1){
                System.out.println("汉字:"+ch);
            }
            */
            if(String.valueOf(ch).getBytes().length>1){
                System.out.println("汉字:"+ch);
            }
        }
    }
    /*
     * 5、字符串比较大小 ---要用compareTo(s2)
     */
    @Test
    public void demo5(){
        String s1="abccqqq";
        String s2="abcd2212";
        //只有基本数据类型才能用: > , >= , < , <=
        //if(s1>s2){//WA
        int n=s1.compareTo(s2);
        System.out.println("n="+n);
        if(  n > 0 ){
            System.out.println("s1更大");
        }else if( n<0 ){
            System.out.println("s1更小");
        }else{
            System.out.println("s1和s2相等");
        }
    }
    /*
     * 6、子串位置查找
     */
    @Test
    public void demo6(){
        String str="ewwewabc23232aabcdd";
        String s = "abc";
        int n = str.indexOf(s);//从0位置开始,在str中查找,第一次出现子串s的位置
        System.out.println("n="+n);

        //找第二个字串的位置
        int m = str.indexOf(s);//先找到第一个,,返回值为-1即是不存在相应子串
        n = str.indexOf(s, m+1);//再从第一个后面开始继续查找,,返回值为-1即是不存在相应子串
        System.out.println("n="+n); 
    }
    /*
     * 7、查找姓名中带“飞”字的人,查找姓“张”的人。
     */
    @Test
    public void demo7(){
       String   names[] ={"张三丰","张无忌","飞张","张飞","赵敏","黄飞鸿","飞哥","一张"};
       for(String name: names){
           if( name.indexOf("飞")!=-1 ){
               System.out.println(name);
           }
       }
       System.out.println("------------------");
       for(String name: names){
           if( name.contains("飞") ){
               System.out.println(name);
           }
       }
       System.out.println("=====================");
       for(String name: names){
           if( name.indexOf("张")==0 ){
               System.out.println(name);
           }
       }
       System.out.println("------------------");
       for(String name: names){
           if( name.startsWith("张") ){
               System.out.println(name);
           }
       }
    }
/*
        8、查找扩展名为“.java”的文件名。
     */
    @Test
    public void demo8(){
        String fileNames[] = {"aa.java","dd.java.c","11.doc","ok.c.java","Hello.java","a.bat"};
        for(String name: fileNames){
            if(name.endsWith(".java")){
                System.out.println(name);
            }
        }
        System.out.println("-----------");
        for(String name: fileNames){
            int n = name.lastIndexOf(".java");
            //System.out.println(n);
            if(n == name.length()-".java".length() ){
                System.out.println(name);
            }
        }
    }
@Test
    public void demo9(){
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            String name = sc.nextLine();
            if(name.equalsIgnoreCase("jAcK")){
                System.out.println("yes....");
            }
        }
    }
@Test
    public void demo10(){
        String str="aCw23NoT";
        //字符串中的所有操作函数都不是原地修改,都是保存现场的---原字符串不变
        str = str.toLowerCase();
        System.out.println(str);

        str="aCw23NoT";
        str=str.toUpperCase();
        System.out.println(str);
    }
/*
     * 截子串
     */
    @Test
    public void demo11(){
        String str="abc12345abc";
        String s = str.substring(3); //从位置3开始,一直到最后
        System.out.println(s);

        String s2 = str.substring(3,8);//[3,8)
        System.out.println(s2);

        //截取最后一个字符以外部分
        String s3 = str.substring(0,str.length()-1);
        System.out.println(s3);
    }
    @Test
    public void demo12(){
        String user = "Jack,21,1234";
        String strs[] = user.split(",");
        for(String s: strs){
            System.out.println(s);
        }
    }
    @Test
    public void demo13(){
        String user = "Jack,21 1234,,aaa  bbb";
        String strs[] = user.split(",+| +");
        for(String s: strs){
            System.out.println(s);
        }
    }

    @Test
    public void demo14(){
        String user = "Jack,21.1234,bbb.ww";
        String strs[] = user.split(",|\\."); //特殊字符必须转义, "."是特殊字符
        for(String s: strs){
            System.out.println(s);
        }
        System.out.println("------------");
        //user = user.replaceAll("\\.", ",");
        user = user.replace('.', ',');
        System.out.println(user);
        strs = user.split(",");
        for(String s: strs){
            System.out.println(s);
        }
    }
@Test
    public void demo15(){
        String str="   uiewu 326dss   ";
        System.out.println(str);
        System.out.println("len1:"+str.length());
        str=str.trim();
        System.out.println(str);
        System.out.println("len2:"+str.length());
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值