java基础之字符串

除了数字和java关键字外,其他的由多个字符组成的一串字符,都可以叫做字符串。在java中,字符串需要用双引号引起来。

使用String对象存储字符串

String s = “Hello World”;

常用方法:

length():返回字符串长度

equals():对比两个字符串是否相等

课堂练习:

实现会员注册,要求

·用户名长度不小于****3

·密码长度不小于****6

·注册时两次输入密码必须相同

Scanner sc = new Scanner(System.in);
System.out.println("欢迎进入注册系统");
while (true){
    System.out.print("请输入用户名:");
    String name = sc.next();
    if(name.length()<3){
        System.out.println("用户名不能少于3位");
        continue;
    }
    System.out.print("请输入密码:");
    String pwd = sc.next();
    if(pwd.length()<6){
        System.out.println("密码长度不能小于6位,请重新输入");
        continue;
    }else {
        System.out.print("请再次输入密码:");
        String pwd1 = sc.next();
        if(pwd.equals(pwd1)){
            System.out.println("注册成功!请牢记用户名和密码");
            break;
        }else {
            System.out.println("两次密码输入不一致,请重新注册");
            continue;
        }
    }
}									
字符串拼接练习:

某学生的成绩如表所示,定义三个变量,将成绩赋值给这三个变量,输出他的成绩单

mysql80
java90
html85

输出结果:

成绩为:mysql:80,java:90,html:85
字符串拼接的两种方法:

1.“+”号拼接

String s1 = "abc";
String s2 = "def";
System.out.println(s1+s2);

2.使用String 类的concat()方法

String s1 = "abc";
String s2 = "def";
String s3 = s1.concat(s2);
System.out.println(s3);
String常用提取方式:

如果不存在,返回-1

方 法说 明
public int indexOf(char ch)返回第一个出现的字符ch的位置
public int indexOf(String value)返回第一个出现的字符串value的位置
public int lastIndexOf(char ch)返回最后一个出现的字符ch的位置
public int lastIndexOf(String value)返回最后出现的字符串value的位置
字符串的截取:
方 法说 明
public String substring(int beginIndex)截取从位置索引开始的字符串部分(截取内容包括该下标)
public String substring(int beginIndex,int endIndex)提取下标为beginIndex和endIndex之间的字符串部分(截取部分包含beginIndex,不包含endIndex:包前不包后)
public String trim()返回一个前后不含任何空格的调用字符串的副本
课堂练习:

判断.java是否合法(文件的后缀是由.java组成),判断邮箱格式是否合法(至少包含“@”和“.”,并且“@”在“.”之前)

示例代码

Scanner sc = new Scanner(System.in);
System.out.print("请输入java文件名:");
String javaFile = sc.next();
if(javaFile.substring(javaFile.lastIndexOf('.')).equals(".java")){
    System.out.println(javaFile+"文件名合法");
}else {
    System.out.println(javaFile+"文件名不合法");
}
System.out.print("请输入邮箱:");
String emailName = sc.next();
if(emailName.indexOf("@")!=-1&&emailName.indexOf(".")>emailName.indexOf("@")){
    System.out.println("邮箱格式正确");
}else {
    System.out.println("邮箱格式不正确");
}

字符串拆分:

split():将字符串按一定规则拆分,返回值为数组。

课堂示例:

有一段歌词,每句都以空格“ ”结尾,请将歌词每句按行输出。

“长亭外 古道边 芳草碧连天 晚风扶 柳笛声残 夕阳山外山”

示例代码:

String words = "长亭外 古道边 芳草碧连天 晚风扶 柳笛声残 夕阳山外山";
System.out.println("**********格式改变前***********");
System.out.println(words);
String[] wordsSplit = words.split(" ");
System.out.println("**********格式改变后***********");
for (String word : wordsSplit){
    System.out.println(word);
}

课堂示例:

验证身份证号、手机号、座机号格式是否正确

示例代码:

System.out.println("请输入身份证号码:");
String idCard = sc.next();
System.out.println("请输入手机号码:");
String mobilePhoneNum = sc.next();
System.out.println("请输入座机号码(xxxx-xxxxxxx):");
String phoneNum = sc.next();
String[] phones = phoneNum.split("-");
if(idCard.length()!=18){
	System.out.println("身份证号码必须是18位");
}
if(mobilePhoneNum.length()!=11){
	System.out.println("手机号码必须是11位");
}
if(phones[0].length()!=4){
	System.out.println("座机区号必须为4位");
}
if(phones[1].length()!=7){
	System.out.println("座机号码必须为7位");
}
课堂练习:

输入一个字符串,再输入要查找的字符,判断该字符在该字符串中出现的次数

Scanner input = new Scanner(System.in);
System.out.println("请输入一串字符串:");
String words = input.next();
System.out.println("请输入要查找的字符:");
String chr = input.next();
int count = 0;
for(int i = 0;i<words.length();i++){
String word = words.substring(i, i + 1);
if(word.equals(chr)){
count++;
}
}
System.out.println(chr+"共出现"+count+"次");
StringBuffer类:String增强版

·对字符串频繁修改(如字符串连接)时,使用StringBuffer类可以大大提高程序执行效率

·创建StringBuffer对象

StringBuffer sb = new StringBuffer();//创建空StringBuffer对象
StringBuffer sb = new StringBuffer("aaa");//创建一个变量存储字符串aaa

·StringBuffer的使用

sb.toString();//转化为String类
sb.append("*");//追加字符串
sb.insert(1,"*");//在指定下标位置插入字符串

代码阅读:

public class StringBufferDemo {
    public static void main(String[ ] args) {
        StringBuffer sb = new StringBuffer("青春无悔");
        int num=110;
        StringBuffer sb1 = sb.append("我心永恒");
        System.out.println(sb1);
        StringBuffer sb2 = sb1.append('啊');
        System.out.println(sb2);
        StringBuffer sb3 = sb2.append(num);
        sb3.insert(4,"哈哈哈");
        System.out.println(sb3);
    }

}
课堂练习:

将一个数字字符串转换成逗号分隔的数字串,即从右边开始每三个数字用逗号分隔

请输入一串数字:12345678
12345678

参考代码:

Scanner sc = new Scanner(System.in);
System.out.println("请输入一串数字:");
String num = sc.next();
StringBuffer sb = new StringBuffer(num);//将String转化为StringBuffer类
for(int i = sb.length()-3;i>0;i = i-3){
    sb.insert(i,",");
}
System.out.println(sb);
总结:
String类常用方法:

获得字符串的长度:length()

比较字符串:equals()

连接字符串:concat()

提取字符串:substring()

搜索字符串:indexOf()

拆分字符串:split()

StringBuffer类常用方法:

转换成String类型:toString()

连接字符串:append()

插入字符串:insert()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值