1.字符串比较
/*
字符串的比较:
使用==做比较:
1)基本类型,比较的是数据值是否相同;
2)引用类型,比较的是地址值是否相同。
public boolean equals(Object,anobject);将此字符串与指定对象进行比较,由于我们比较的是字符串对象,所以参数直接传递一个字符串。
*/
public class student {
public static void main(String[] args) {
//构造方法的方式得到对象
char [] chs={'a','b','c'};//有趣,竟然不能用双引号。这是因为“”中为Sting类型,报错也确实是类型问题。
String s1 = new String(chs);
String s2 = new String(chs);
//直接赋值的方式得到对象
String s3="abc";
String s4="abc";
//比较字符串对象地址是否相同
System.out.println(s1==s2);
System.out.println(s1==s3);
System.out.println(s3==s4);
System.out.println("--------");
//比较字符串内容是否相同
System.out.println(s1.equals(s2));//比较s1与s2的字符串内容是否相同。
System.out.println(s1.equals(s3));
System.out.println(s3.equals(s4));
}
}
案例:用户名密码登录
import java.util.Scanner;
/*
需求:已知用户名和密码,请用程序实现模拟用户登录,总共给3次机会,登录之后,给出相应的提示。
思路:
1)已知用户名和密码,定义2个字符串表示即可;
2)scanner实现录入;
3)字符串的内容比较,equals()方法实现;
4)用循环实现多次机会,采用for循环实现,并在登录成功的时候,break结束循环。
*/
public class student{
public static void main(String[] args) {
//1)已知用户名和密码,定义2个字符串表示即可;
String username="Jack";
String password="123456";
//4)用循环实现多次机会,采用for循环实现,并在登录成功的时候,break结束循环。
for (int i=0;i<3;i++) {
//2)scanner实现录入;
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名:");
String name = sc.nextLine();
System.out.println("请输入密码:");
String pwd = sc.nextLine();
//3)字符串的内容比较,equals()方法实现;
if (name.equals(username) && pwd.equals(password)) {
System.out.println("登录成功");
} else {
System.out.println("登录失败,你还有" + (2 - i) + "次机会!");
}
}
}
}
2.遍历字符串
/*
遍历字符串:
需求:键盘录入一个字符串,遍历它
思路:
1)scanner实现键盘录入;
2)获取字符串中每一个字符,用public char charAt(int index):返回指定索引处的char值。
3)字符串的长度;
4)遍历字符串的通用格式:
for (int x=0;x<s.length();x++){
s.charAt(x)//就是索引x处的字符
}
*/
import java.util.Scanner;
public class studentDemo {
public static void main(String[] args) {
//1)scanner实现键盘录入;
Scanner sc = new Scanner(System.in);
//提示信息
System.out.println("请输入一个字符串:");
String line = sc.nextLine();
// 2)获取字符串中每一个字符,用public char charAt(int index):返回指定索引处的char值。
System.out.print("[");
for (int x=0;x<line.length();x++){
//System.out.print("[");
if (x==line.length()-1){
System.out.print(line.charAt(x));
}else{
System.out.print(line.charAt(x)+",");
}
}
System.out.println("]");
}
}
3.字符串拼接
/*
字符串拼接:
需求:数组为 int [] arr ={1,2,3,4},输出为[1,2,3,4]
思路:
1)静态初始化这个数组;
2)定义一个方法,将数组按指定格式返回;
3)遍历数组,拼接;
4)调用方法,变量接受;
5)输出结果。
*/
public class studentDemo{
public static void main(String[] args) {
// 1)静态初始化这个数组;
int [] arr={1,2,3,4};
//调用方法
String s = arraytoString(arr);
//输出结果
System.out.println(s);
}
//2)定义一个方法,将数组按指定格式返回;
public static String arraytoString(int [] arr){//static 必不可少!!!
String s="";
s+="[";
for (int x=0;x<arr.length;x++){
if (x==arr.length-1){
s+=arr[x];
}else{
s+=arr[x];
s+=",";
}
}
s+="]";
return s;
}
}
4.字符串反转
import java.util.Scanner;
/*
字符串反转:
需求:键盘录入字符串比如abc,输出cba。
思路:
1)scanner实现键盘录入;
2)定义一个方法(2个注意,注意返回值类型:String;注意参数:String s),实现字符串反转
3)在方法中将字符串倒着遍历;
4)调用方法,变量接收;
5)输出结果。
*/
public class studentDemo{
public static void main(String[] args) {
//1)scanner实现键盘录入;
Scanner sc=new Scanner(System.in);
//提示输入字符
System.out.println("请输入字符:");
String line = sc.nextLine();
//4)调用方法,变量接收;
String s = reverse(line);
//5)输出结果。
System.out.println(s);
}
//2)定义一个方法(2个注意,注意返回值类型:String;注意参数:),实现字符串反转
public static String reverse(String s){
//3)在方法中将字符串倒着遍历;
String ss="";
for (int x=s.length()-1;x>=0;x--){
ss+=s.charAt(x);
}
return ss;
}
}