String类中的常用方法

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;

import org.junit.Test;

public class StringDemo {
    /*
     * 2.输出String s =“1234567”的长度,第3个字符,字节个数
     */
    @Test
    public void demo1(){
        //String str = "ak中文";
        //String str2 = new String("dsjsdj");
        String s="1234567";
        System.out.println(s.length());//7
        System.out.println(s.charAt(2));//3
        System.out.println(s.getBytes().length);
    }

    /*
    3、输出s=“1234567中"的长度,第3个字符,字节个数
     */
    @Test
    public void demo2() throws UnsupportedEncodingException{
        String s="1234567中";
        System.out.println(s.length());//8个字符
        System.out.println(s.charAt(2));//3
        System.out.println( s.getBytes("gbk").length);//utf-8:一个汉字3字节,  gbk:一个汉字两个字节
    }

    /*
     * 4、判断某段字符是否含有汉字(假定只有中英文字符)
     */
    @Test
    public void demo3() throws IOException{
        String s="1234567er汉erer";
        if(s.length()<s.getBytes("gbk").length){
            System.out.println("有汉字");
        }else{
            System.out.println("无汉字");
        }
    }

    /*
       5、分别输出一个字符串中的中文字符、英文字母、数字
     */
    @Test
    public void demo4() throws IOException{
        String s="1FK236W7er汉et34中国fg语法23Rr45er";
        for(int i=0;i<s.length();i++ ){
            char ch = s.charAt(i);
            int len = (""+ch).getBytes().length;
            if(len>1){
                System.out.println("汉字:"+ch);
            }else if(ch>='0'&&ch<='9'){
                System.out.println("数字:"+ch);
            }else{
                System.out.println("字母:"+ch);
            }
        }

    }


    /*
       5、分别输出一个字符串中的中文字符、英文字母、数字
     */
    @Test
    public void demo4_2() throws IOException{
        String s="1FK236W7er汉et34中国fg语法23Rr45er";
        for(char ch: s.toCharArray() ){
            int len = (""+ch).getBytes().length;
            if(len>1){
                System.out.println("汉字:"+ch);
            }else if(ch>='0'&&ch<='9'){
                System.out.println("数字:"+ch);
            }else{
                System.out.println("字母:"+ch);
            }
        }
    }

    @Test
    public void demo5() throws IOException{
        //※注意,凡是String类中的字符串处理函数,都是原字符串不变,处理结果是返回出来的那个新串

        String s="1FK236W7er汉et34中国fg语法23Rr45er";
        s=s.toUpperCase();
        System.out.println(s);

        s=s.replace('R', '8');
        System.out.println(s);

        String str="Jack,20,Tom,22,张三,30";
        String ss[] = str.split(",");//regex---正则表达式
        for(String a:ss){
            System.out.println(a);
        }
    }

    @Test  //regex---正则表达式  String中用到正则表达式的几个方法:replaceAll(),split(),matches()
    public void demo6(){
//      String str="Jack,20,Tom,22,张三,30";
//      String ss[] = str.split(",");

//      String str="Jack,20 Tom   22,张三,30";
//      String ss[] = str.split(",| +");

//      String str="Jack,20 Tom   22|张三,30";
//      String ss[] = str.split(",| +|\\|");//正则表达式中的特殊字符要进行转义,如: \\|  \\.


        String str="Jack,20 Tom   22|张三,30";
        //如果被分割字符串中存在特殊的正则字符,我们不想转义,则可用替换来解决
        //str=str.replaceAll("|", ",");//bug---第一个参数是正则表达式,该句有bug,会在任意字符间进行分割替换
        //str=str.replaceAll("\\|", ",");//ok--正则表达式中的特殊字符,要转义
        str=str.replace('|', ',');
        //String aa='welcome';//单引号不能用来定义字符串


        String ss[] = str.split(",| +");
        for(String s:ss){
            System.out.println(s);
        }
    }

}
import java.util.Scanner;

import org.junit.Test;

public class StringDemo2 {
    /*
     * 1、字符串比较大小
     */
    @Test
    public void demo(){
        String str1="abc123";
        String str2="abcdswehhw123";
        int res = str1.compareTo(str2);
        if(res>0){
            System.out.println(str1+"更大!");
        }else if(res<0){
            System.out.println(str1+"更小!");
        }else{
            System.out.println(str1+"等于"+str2);
        }
    }
    /*
     *  2、子串位置查找
        3、查找姓名中带“飞”字的人,查找姓“张”的人。
        4、查找扩展名为“.java”的文件名。
     */
    @Test
    public void demo2(){
        String str1="abc12de2323io883";
        int pos = str1.indexOf('c');//查找字符,找到则返回起始位置,若没找到则indexOf()会返回-1
        System.out.println("pos:"+pos);
        pos = str1.indexOf("io88");//查找子串,找到则返回起始位置,若没找到则indexOf()会返回-1
        System.out.println("pos:"+pos);


    }

    /*
        3、查找姓名中带“飞”字的人,查找姓“张”的人。
        4、查找扩展名为“.java”的文件名。
     */
    @Test
    public void demo3(){
        String names[]={"张飞","张飞丰","张无忌","赵敏","赵子龙","飞龙张","小李飞刀"};
        //姓名中带“飞”字的人
        for(String nm:names){
            if( nm.indexOf("飞") >= 0 ){
                System.out.println(nm);
            }
        }

        System.out.println("===============");
        //查找姓“张”的人。
        for(String nm:names){
            if( nm.indexOf("张") == 0 ){
                System.out.println(nm);
            }
        }

        System.out.println("===============");
        //查找姓“张”的人。
        for(String nm:names){
            if( nm.startsWith("张") ){
                System.out.println(nm);
            }
        }

    }

    /*
       4、查找扩展名为“.java”的文件名。
     */
    @Test
    public void demo4(){
        String names[]={"aa.java","bc.java.c","1.java","赵敏.txt","赵子龙.java","飞龙张.c.java","小李.java.飞刀"};
        for(String nm:names){
            if(nm.endsWith(".java")){
                System.out.println(nm);
            }
        }
    }

    /*判断用户名和密码是否正确,同时用户名忽略大小写*/
    @Test
    public void demo5(){
        String name="Jack";
        String pwd="1234";
        Scanner sc = new Scanner(System.in);
        while (true) {
            String nm = sc.nextLine();
            String pwd2 = sc.nextLine();
            if (nm.trim().equalsIgnoreCase(name) && pwd2.equals(pwd)) {
                System.out.println("登录成功....");
            } else {
                System.out.println("登录失败....");
            }
        }
    }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值