String

常用API  String

String简单介绍

String类定义的变量可以用于存储字符串,同时String类提供了很多操作字符串的功能,我们可以直接使用。

ArrayList简单介绍

ArrayList代表的是集合类,集合是一种容器,与数组类似,不同的是集合的大小是不固定的。

通过创建ArrayList的对象表示得到一个集合容器,同时ArrayList提供了比数组更好用,更丰富的API(功能)给程序员使用。

1.String

String概述

java.lang.String类代表字符串,String类定义的变量可以用于指向字符串对象,然后操作该字符串。

Java程序中的所有字符串文字(例如“abc”)都为此类的对象。

特点:String其实常被称为不可变字符串类型,它的对象在创建后不能被更改。

String类创建对象的2种方式

方式一:直接使用“”定义。

方式二:通过String类的构造器创建对象。

构造器                                                                   说明

public string()                                创建一个空白字符串对象,不含有任何内容

public String(String original)          根据传入的字符串内容,来创建字符串对象

public String(char[ ] chs)                根据字符数组的内容,来创建字符串对象

public String(byte[ ] chs)                根据字节数组的内容,来创建字符串对象

package com.String;

public class string01 {
    public static void main(String[] args) {
        //方法一
         String name="我爱你中国";
        System.out.println(name);
        //方法二
        String s1=new String ();//s1=" "
        System.out.println(s1);

        String s2=new String("我是中国人");
        System.out.println(s2);
        //方法三
        char [] chars={'a','b','中'};
        String s3=new String(chars);
        System.out.println(s3);
        //方法四
        byte [] bytes={98,97,96,65,67};
        String s4=new String(bytes);
        System.out.println(s4);
    }
}

区别:

  1. 以“”方式给出的字符串对象,在字符串常量池中存储,而且相同内容只会在其中存储一份。
  2. 通过构造器new对象,每new一次都会产生一个新对象,放在堆内存中。

String类常见面试题

Java存在编译优化机制,程序在编译时:“a”+“b”+“c”会直接转成"abc"

String类常用APlI-字符串内容比较

字符串的内容比较不适合用“==”比较。

推荐使用String类提供的“equals”比较:只关心内容一样即可

方法名                                                                          说明

public boolean equals (0bject an0bject)                       将此字符串与指定对象进行比较。只关心字符内容是否一致!

public boolean equalsIgnorecase (string anotherstring)  将此字符串与指定对象进行比较,忽略大小写比较字符串。只关心字符内容是否一致!

开发中==比较数据:基本数据类型比较时使用。

String类常用API-遍历、替换、截取、分割操作

方法名                                                                                     说明

public int length()                                                 返回此字符串的长度

public char charAt(int index)                            获取某个索引位置处的字符

public char[ ] toCharArray( ) :                将当前字符串转换成字符数组返回

public string substring(int beginIndex,int endIndex)           根据开始和结束索引进行截取,得到新的字符串(包前不包后)

public string substring(int beginIndex)                                    从传入的索引处截取,截取到末尾,得到新的字符串

public string replace(CharSequence target, CharSequence replacement)        使用新值,将字符串中的旧值替换,得到新的字符串

public string[] split(String regex)                                              根据传入的规则切割字符串,得到字符串数组返回

package com.String;

public class String02 {
    public static void main(String[] args) {
        //1.
        String name="我爱你中国love";
        System.out.println(name.length());
        //2.
       char c= name.charAt(1);
        System.out.println(c);
        System.out.println("-------遍历字符串中每个字符--------");
        for (int i = 0; i < name.length(); i++) {
            char ch=name.charAt(i);
            System.out.println(ch);
        }
        //3.
        char[] chars = name.toCharArray();
        for (int i = 0; i < chars.length; i++) {
            char ch=chars[i];
            System.out.println(ch);
        }
        //4.
        String name2="iava六六六";
        String rs=name2.substring(0,6);
        System.out.println(rs);


        //5.
        String rs2=name2.substring(4);
        System.out.println(rs2);
        //6.
        String name3="金三胖是最厉害的80后  ,金三胖棒棒哒";
        String rs3=name3.replace("金三胖","***");
        System.out.println(rs3);
        //7.
        System.out.println(name3.contains("金三胖"));
        //8.
        System.out.println(name3.startsWith("金三胖"));
        //9.
        String name4="王宝强,贾乃亮,陈羽凡";
        String [] names=name4.split(",");
        for (int i = 0; i < names.length; i++) {
            System.out.println("选择了:"+names[i]);
        }
    }
}

string案例操作

String类开发验证码功能:随机产生一个5位的验证码,每位可能是数字、大写字母、小写字母。

分析:

  1. 定义一个string类型的变量存储验a-zA-Z0-9之间的全部字符。
  2. 循环5次,随机一个范围内的索引,获取对应字符连接起来即可。
  3. package com.String;
    
    import java.util.Random;
    
    public class String03 {
        public static void main(String[] args) {
            //定义出现的字符信息
            String dates="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
            //循环5次,每次生成随机索引,连接起来
            String code="";
            Random r=new Random();
            for (int i = 0; i <5 ; i++) {
                //随机一个索引
                int index=r.nextInt(dates.length());
                char c=dates.charAt(index);
                code+=c;
            }
            //输出字符串变量
            System.out.println(code);
        }

模拟用户登录功能:

模拟用户登录功能,最多只给三次机会。

分析:

  1. 系统后台定义好正确的登录名称,密码。
  2. 使用循环控制三次,让用户输入正确的登录名和密码,判断是否登录成功,登录成功则不再进行登录;登录失败给出提示,并让用户继续登录。
  3. package com.String;
    
    import java.util.Scanner;
    
    public class String04 {
        public static void main(String[] args) {
            //定义正确登录名称和密码
            String okloginname="admin";
            String okpassword="itheima";
            //定义一个循环,循环3次
            Scanner sc=new Scanner(System.in);
            for (int i = 1; i <=3; i++) {
                System.out.println("请你输入登录名称:");
                String loginname=sc.next();
                System.out.println("请你输入登录密码:");
                String password=sc.next();
                //判断登录是否成功
                if(okloginname.equals(loginname)){
                    if(okpassword.equals(password)){
                        System.out.println("登陆成功");
                        break;
                    }else{
                        //密码错误
                        System.out.println("密码错误。还剩余"+(3-i)+"次机会");
                    }
                }else {
                    System.out.println("密码名称错误。还剩余"+(3-i)+"次机会");
                }
            }
        }
    }

手机号码屏蔽:

以字符串的形式从键盘接受一个手机号,将中间四位号码屏蔽,最终效果为:

分析:键盘录入一个字符串,用Scanner 实现。

截取字符串前三位,截取字符串后四位。

将截取后的两个字符串,中间加上****进行拼接,输出结果即可。

package com.String;

import java.util.Scanner;

public class String05 {
    public static void main(String[] args) {
        //键盘录入手机号码
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入你的手机号码:");
        String tel=sc.next();
        //截取号码前三位后四位
        String before=tel.substring(0,3);
        String after=tel.substring(7);//从索引7截到末尾
        String s=before +"****"+after;
        System.out.println(s);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是秀秀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值