学习目标:学习Java的字符串
学习内容:
2.1 String
注意:字符串一旦被定义,将不能更改
定义方式
String 变量名 = “字符串”;
String 变量名 = new String();创建一个空字符串
char arr[] = “字符串”;String 变量名 = new String(arr);可用于修改字符串;
byte arr[] =“字符串”;String 变量名 = new String(arr) ; 可用于asc码的转换;
2.2 字符串的比较
扩展:基础数据类型比较的是数据值;引用数据类型比较的是地址值。
Boolean equals() 完全一样才输出true;Boolean equalsignoreCase()忽略大小写的比较。
2.3 获取字符串的长度
字符串名.length;
2.4 遍历字符串
for(int i =0;i < 字符串名.length;i++){
sout(字符串名.charat(i));
}
2.5 截取字符串
字符串名.substring(起始下标,结束下标);不包括结束下标。
2.6 字符串的替换
字符串名.replace(旧值,新值)
知识运用
3.1 用户登录:用户有三次机会登录,用户名和密码都正确,输出登陆成功;否则,输出用户名或密码错误,并提示用户还剩几次机会。
代码如下
import java.util.Scanner;
public class log_in {
public static void main(String[] args) {
//正确的用户名和密码
String user_name = "ccr";
String user_password = "030715";
for(int num = 2;num !=0;num--){
System.out.println("请输入用户名:");
Scanner sc1 = new Scanner(System.in);
String name = sc1.next();
System.out.println("请输入密码:");
Scanner sc2 = new Scanner(System.in);
String password = sc2.next();
Boolean result1 = user_name.equals(name);
Boolean result2 = user_password.equals(password);
if(result1 == true && result2 == true){
System.out.println("登录成功!");
break;
}
else {
System.out.println("用户名或密码错误!");
System.out.println("您还剩" + num + "次机会");
}
}
}
}
3.2 金额转化,将金额nums转化为大写的数字, 0<=num<=9999999.
代码如下
import java.util.Scanner;
public class money {
public static void main(String[] args) {
//输入金额
System.out.println("请输入金额:");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
//判断金额是否符合要去
if(num >=0 && num <= 9999999){
System.out.println("金额正确!");
}
else {
System.out.println("金额错误!");
}
String final_an = get(num);
//获取每一位时逆序,此时应再逆序一次
for (int i = final_an.length() - 1; i >= 0; i--) {
System.out.print(final_an.charAt(i));
}
}
//获取数字每一位的方法
public static String get(int num){
String anwser = "";
while(true){
int ge = num%10;
//调用big方法
String b = big(ge);
anwser = anwser + b;
num = num/10;
if(num == 0){
break;
}
}
return anwser;
}
//将阿拉伯数字转化为大写的数字的方法
public static String big(int ge){
String Arr[] ={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
String big_word = Arr[ge];
return big_word;
}
}
3.3 手机号码屏蔽
代码如下
import java.util.Scanner;
public class phone_number {
public static void main(String[] args) {
System.out.println("请输入您的电话号码:");
Scanner sc = new Scanner(System.in);
String phone_number = sc.next();
//截取前三位
String three = phone_number.substring(0,3);
//截取后四位
String four = phone_number.substring(7);
System.out.println(three + "****" + four);
}
}
3.4 身份证信息的获取:身份证的7—14位代表出生日期,16位代表性别,奇数为男性,偶数为女性。输入一个身份证,输出该身份证持有人的生日和性别。
代码如下
import java.util.Scanner;
public class id {
public static void main(String[] args) {
System.out.println("请输入您的身份证:");
Scanner sc = new Scanner(System.in);
String id = sc.next();
//获取生日
String year = id.substring(6,10);
String month = id.substring(10,12);
String day = id.substring(12,14);
//获取性别
char sex = id.charAt(16);
String gender = "";
if((sex-48)%2 == 0){
gender = gender + "女";
}
else {
gender = gender + "男";
}
System.out.println("生日:" + year + "年" + month + "月" + day + "日");
System.out.println("性别:" + gender);
}
}
3.5 游戏敏感词的屏蔽:需输出对应屏蔽词的*,例如输入cnm,应输出***;输入sb,应输出**。
import java.util.Scanner;
public class dirty_talk {
public static void main(String[] args) {
System.out.println("请输入:");
Scanner sc = new Scanner(System.in);
String talk = sc.next();
//建立一个脏话集合
String arr[] = {"tmd","cnm","mlgb","sb"};
//遍历集合
for (int i = 0; i < arr.length; i++) {
//根据不同屏蔽词生成对应个数的*
int count = arr[i].length();
String hide = "";
for (int i1 = 0; i1 < count; i1++) {
hide = hide + "*";
}
talk = talk.replace(arr[i],hide);
}
System.out.println(talk);
}
}