目录
概念:String类位于java.lang包中,具有丰富的方法,是最常用的类之一
例如:
使用String储存字符串
String s = "Hello World";
String s = new String();
String s = new String("Hello World");
方法一:字符串长度
//注册用户,要求密码不能小于6位数
import java.util.Scanner;
public class Work {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String name,mm;
System.out.println("请输入你的用户名:");
String name = sc.next();
System.out.println("请输入你的密码:");
String mm = sc.next();
if(mm.length()>=6) {
System.out.println("恭喜您,注册成功");
}else {
System.out.println("密码长度不能小于6:");
}
}
}
分析: 1、字符串长度 2、调用length()方法获得 3、返回字符串中的字符数
方法二:字符串的比较
//登录后,实现登录验证
import java.util.Scanner;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的用户名:");
String name = sc.next();
System.out.println("请输入你的密码:");
String mm = sc.next();
if(name.equals("QWE")&&mm.equals("1234567890")) {
System.out.println("恭喜您,登录成功");
}else {
System.out.println("用户名或者密码错误:");
}
}
问题:登陆时不考虑用户名大小写的问题,实现登录!!!
分析: 1、使用equalslgnoreCase()方法 2、使用toLowerCase()方法 3、使用toUpperCase方法
方法三:字符串连接
使用"+"或者使用String类的concat()方法
String s = new String("你好,");
String name = new String("张三!");
//B字符串将被连接到A字符串的后面
String sentence = s.concat(name);
System.out.println(sentece);
输出结果:你好,张三!
方法四: 1、字符串常用提取方法,判断是否正确、是否存在 2、字符串截取方法 3、检查Java文件名 4、字符串拆分
1、//返回指定字符在字符串中第一次出现的索引位置
System.out.println(s1.indexOf("复"));
//返回指定字符在字符串中最后一次出现的索引位置
System.out.println(s1.lastIndexOf("这"));
2、//字符串截取方法
s1 = "|张三|,|是|,|李四|";
//从指定位置开始截取到最后返回截取后的字符串
s3 = s1.substring(3);
System.out.println(s3);
//从指定位置开始截取到指定位置结束,不截取结束位置的字符串
s3 = s1.substring(3,5);
System.out.println(s3);
3、//检查Java文件名:
int index = fileName.lastIndexOf(",");
if(index!=-1&&index!=0&&fileName.substring(index+1,fileName.length()).equals("java")){
fileCorrect = true;
}else{
System.out.println("文件名无效:")
}
4、//字符串拆分
//根据给定的规则对字符串进行拆分
s1 = "|赵六|,|是|,|千子哥|";
String [] ss = s1.split(",");
System.out.println(ss.length);
//遍历数组
for (int i = 0; i < ss.length; i++) {
System.out.println(ss[i]);
}
StringBuffer是使用缓冲区的,也是操作字符串的。与String类不同的是String内容一旦声明之后不可改变,改变的只是其存地址的指向,而StringBuffer中的内容是可以改变的
public class Test1 {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer("123456789");
String s = "1234567890-";
System.out.println(sb);
sb.append("今天很开心");
System.out.println(sb);
}
}
1、字符串的连接操作:(append) 2、在任意位置处为StringBuffer添加内容,可以直接用insert()方法添加内容 3、字符串反转操作,直接使用reverse()方法就可以完成反转的功能 4、替换指定范围的内容:StringBuffer类中也存在replace()方法 5、字符串的截取:通过substring()方法直接从StringBuffer()中指定范围的内容 6、删除指定位置的字符串:可以通过delete()方法删除指定范围的内容
1、StringBuilder是一个可变的字符序列 2、建议优先采用该类,因为该类大多数实现中比StringBuffer要快 3、StringBuilder实例用于多线程是不安全的。如果需要这样的同步,建议使用StringBuffer
StringBuilder sbb = new StringBuilder("123");