字符串
字符串的使用
字符串的创建
简单地说,使用字符串主要分为两步
1:定义并初始化字符串
2:使用字符串,对字符串纪念性一些处理
如下所示:
//创建一个字符串对象"hello world"
String s = "hello world";
在Java中,字符串被作为String类型的对象来处理。String 类是Java设计人员预先提供的一个非常有用的类,他位于java.lang 保重,默认情况下,该报被自动导入所有的程序中。创建String 对象的另外两种方法如下列代码所示。
//创建一个空字符串
String s = new String();
或者
//创建一个字符串对象 ”hello world“
String s = new String("hello world");
案例
注册新用户,要求密码长度不能小于6位
代码
public class Demo01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入用户名");
String name = scanner.next();
System.out.println("请输入密码");
String password = scanner.next();
if( password.length() >=6 ){
System.out.println("密码长度符合要求");
}
else{
System.out.println("密码长度过短");
}
// a.length数组 length 是属性 没有()
int [ ] a = new int[4];
System.out.println(a.length);
}
}
/**用 length()方法来得到长度
*字符串1.length();
*返回 字符串1的长度
*/
字符串比较
语法格式:
字符串1.equals(字符串2);
案例:
注册成功之后,实现登录验证,用户名为”小明“ 密码为”1234567“
代码:
public class Demo02 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入用户名:");
String name = scanner.next();
System.out.println("请输入密码:");
String password = scanner.next();
if( name.equal("小明") && password.equals("1234567")){
System.out.println("登陆成功!");
}else {
System.out.println("登陆失败");
}
}
}
在Java中双等号()和equals()方法随都应用与两个字符串,但所判断的内容是有差别的;简单来说,”“判断的是两个字符串对象在内存中的首地址是否相等,及判断是否是同一个字符串对象,而 equals()判断的是两个字符串对象的值是否相等
案例:系统规定,登录时不考虑用户名的大小写问题
代码:
使用equalsIgnoreCase()方法
lgnore是”忽略“的意思
这种方法在比较字符串是会忽略字符的大小写
语法格式:
字符串1.equalsIgnoreCase(字符串2)
//忽略大小写比较字符串1和字符串2,如果都相同,则返回true 否则返回false
public class Demo02 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入用户名:");
String name = scanner.next();
System.out.println("请输入密码:");
String password = scanner.next();
if( name.equalsIgnoreCase("小明") && password.equalsIgnoreCase("1234567")){
System.out.println("登陆成功!");
}else {
System.out.println("登陆失败");
}
在Java中 String类提供了两个方法改变字符串中字符的大小写
//toLowerCase 转为小写
//toUpperCase 转为大写
代码
public class Demo03 {
public static void main(String[] args) {
// toLowerCase 转为小写
// toUpperCase 转为大写
String s = "Tom";
System.out.println(s.toLowerCase());
System.out.println(s.toUpperCase());
}
}
字符串的拼接:
语法格式:
字符串.concat(字符串2);
字符串2被链接到字符串1的后面
代码:
public class Demo04 {
public static void main(String[] args) {
String s1 = "hello";
String s2 = "world";
System.out.println((s1 + s2)); //helloworld
System.out.println(s1.concat(s2)); //helloworld
System.out.println(s2.concat(s1));//worldhello
}
}
字符串的提取与查询:
indexOf //返回出现第一个匹配字符 如果没有找到匹配 则返回-1
lastIndexOf // 搜索最后一个出现的字符(或字符串)的位置
9:substring //(开始位置) 截取元素
10.substring //(2,4) 按[2,4)截取元素
11.trim() //去掉字符串前后的空格
代码:
public class Demo04 {
public static void main(String[] args) {
String s1 = "hello";
String s2 = "world";
System.out.println(s1.indexOf("l"));
System.out.println(s1.lastIndexOf("l"));
System.out.println(s1.substring(2)); // llo
System.out.println(s2.substring(2,4)); // rl 包含2 不包含4
String s3 = " haha hehe heihei ";
System.out.println(s3); // haha hehe heihei
System.out.println(s3.trim()); // haha hehe heihei
}
}
字符串拆分:
语法格式
字符串1.split(String separator,int limit);
//separator可选项,标识拆分字符串时使用一个或多个字符。如果不选择该项,则返回包含该字符串所有单个字符串的元素数组
//limit 可选项,该值用来限制返回数组中的元素个数
代码:
public class Demo04 {
public static void main(String[] args) {
String gc = "长亭外 古道边 芳草碧连天";
String[] s = gc.split("");
System.out.println(Arrays.toString(s));
for (int i = 0; i < s.length; i++) {
System.out.println(s[i]);
}