String是不可变长的字符串,初始化之后不可变长了。
StringBuilder是可变长的字符串,可用append("")方法实现变长的字符串。
String中好用的方法:charAt(index),equals("")
//index从0开始,表示第一个元素
String line="goodjava";
line.charAt(index):
因为charAt(index)可以获取到字符串中每一个元素,所以我们结合字符串的length()方法,便可以实现字符串的遍历。遍历实现如下:
/*
键盘输入字符串并进行遍历
*/
public class TraverseStringClass {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入字符串:");
String line = sc.nextLine();
System.out.println("遍历的结果是:");
//charAt(index)是用索引来获取字符串中元素
for(int i=0;i<line.length();i++)
{
System.out.println(line.charAt(i));
}
System.out.println("字符串的长度是"+line.length());
}
}
结果如下:
可以利用equals("")方法制作一个简单的登陆系统:已知账号密码(一般这是从数据库里面获取的),检验登陆,机会只有三次。
package PracticePackage;
import java.util.Scanner;
/*
已知账号密码,设置几种判定条件,检验登录状态
*/
public class LoginClass {
public static void main(String[] args) {
String username = "zk";
String password = "123";
Scanner sc = new Scanner(System.in);
for (int i = 0; i < 3; i++) {
System.out.println("请输入你的账号:");
String name = sc.nextLine();
System.out.println("请输入你的密码:");
String psw = sc.nextLine();
if (username.equals(name) && password.equals(psw)) {
System.out.println("你的密码正确,登陆成功");
break;
} else {
//i=0时,失败后有2次机会
//i=1,1次机会
//i=2,0次机会
if (2 - i == 0) {
System.out.println("三次机会用尽,账号锁定!");
} else {
System.out.println("你的密码错误,登陆失败");
System.out.println("你还有" +
(2 - i) +
"次机会!");
}
}
}
}
}
结果如下:
StringBuilder中好用的两个方法:append(“xxx”),reverse()
StringBuilder sb=new StringBuilder();
sb.append("xxx") ;
sb.reverse();
/*
实现变长字符串的增添与倒转
*/
package PracticePackage;
public class StringAndStringBuilder {
public static void main(String[] args) {
// System.out.println("请输入字符串");
StringBuilder sb=new StringBuilder();
//append("xxx")方法是往sb对象里面添加"xxx"字符串,可以一直append(),因此说StringBuilder是变长的字符串
// sb.append("nice");
// sb.append("java");
sb.append("nice").append("java");
System.out.println(sb);
// reverse()实现字符串的倒转
sb.reverse();
System.out.println(sb);
}
}
结果如下:
String与StringBuilder之间的相互转换:转换后可以利用各自的方法与返回值
package PracticePackage;
import javax.lang.model.element.NestingKind;
import java.util.Scanner;
/*
介绍String与StringBuilder的相互转换
*/
public class StringtransformStringBuilder {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入字符串:");
String name = sc.nextLine();
//String->StringBuilder利用StringBuilder的构造函数
//转化后,原来String的定长字符串可以利用StringBuilder的好用方法。如append(""),reverse()
StringBuilder sb=new StringBuilder(name);
sb.append("我是转换后后面加的");
System.out.println(sb);
//StringBuilder->String利用StringBuilder对象sb的toString()方法
// 利用String对象的charAt(index)方法
String s="";
s=sb.toString();
System.out.println(s.charAt(0));
}
}