【Java】重生之String类再爱我一次---练习题(012)
目录
♦️练习一:用户登录
♦️练习二:遍历字符串
♦️练习三:统计字符次数数
♦️练习四:拼接字符串
♦️练习五:反转字符串
♦️练习六:金额转换
♦️练习七:手机号屏蔽
♦️练习一:用户登录
已知正确的用户名和密码,请用程序实现模拟用户登录
总共给三次机会,登录之后,给出相应的提示
🎏分析:
- 要点一:正确的用户名和密码
- 要点二:总共三次登陆机会
- 要点三:给出相应的提示
import java.util.Scanner;
public class Main {public static void main(String[] args) {//1.创建用户名和密码两个变量String rightUsername = "zhangsan";String rightPassword = "123456";//2.开辟空间,键盘录入输入的用户名和密码//注意:需登录三次,需用循环,又知道循环次数则用for循环for (int i = 0; i < 3; i++) {Scanner sc = new Scanner(System.in);System.out.println("请输入用户名");String Username = sc.nextLine();System.out.println("请输入密码");String Password = sc.nextLine();//3.判断登录是否成功if (rightUsername.equals(Username) && rightPassword.equals(Password)) {System.out.println("用户登陆成功");break;} else {System.out.println("用户名或密码输入错误,请重新登录");}}}
}
注意:在用户登录成功后需结束循环,加break,而登录错误不用
♦️练习二:遍历字符串
需求:键盘录入一个字符串,使用程序实现在控制台遍历该字符串
import java.util.Scanner;
public class Main {public static void main(String[] args) {// 创建Scanner对象以获取用户输入Scanner scanner = new Scanner(System.in);// 提示用户输入字符串System.out.print("请输入一个字符串:");String str= scanner.nextLine();// 遍历并打印字符串中的每个字符for (int i = 0; i < str.length(); i++) {char chs = str.charAt(i);System.out.println(chs);}}
}
♦️练习三:统计字符次数数
键盘录入一个字符串,统计该字符串中大写字母字符,小写字母字符,数字字符出现的次数
import java.util.Scanner; public class CharacterCount { public static void main(String[] args) { // 创建Scanner对象以获取用户输入 Scanner scanner = new Scanner(System.in); // 提示用户输入字符串 System.out.print("请输入一个字符串:"); String inputString = scanner.nextLine(); // 初始化计数器 int uppercaseCount = 0; int lowercaseCount = 0; int digitCount = 0; // 遍历字符串并统计字符类型 for (int i = 0; i < inputString.length(); i++) { char c = inputString.charAt(i); if (c>='A'&&c<='Z') { uppercaseCount++; // 大写字母 } else if (c>='a'&&c<='z') { lowercaseCount++; // 小写字母 } else if (c>='0'&&c<='9')) { digitCount++; // 数字 } } // 输出统计结果 System.out.println("大写字母出现次数: " + uppercaseCount); System.out.println("小写字母出现次数: " + lowercaseCount); System.out.println("数字出现次数: " + digitCount); // 关闭Scanner scanner.close(); }
}
注:用ASCII码值来计算字符出现的次数
♦️练习四:拼接字符串
定义一个方法,把 int数组中的数据按照指定的格式拼接成一个字符串返调用该方法,并在控制台输出结果。例如:
数组为 int[] arr ={1,2,3};
执行方法后的输出结果为:[1,2,3]
🎏分析:
- 要点一:定义一个方法并返回值
- 要点二:注意结果的格式
import java.util.Scanner;
public class Main {public static void main(String[] args) {// 定义整数数组int[] arr = {1, 2, 3};// 调用拼接方法并打印结果String chs= arrToString(arr);System.out.println(chs);}// 方法:将int数组拼接成字符串public static String arrToString(int[] arr){ //判断数组是否为空或数组长度是否为0if(arr.length==0||arr==null){return " ";}String result="[";for (int i = 0; i < arr.length; i++){// 如果不是最后一项,添加逗号if (i < arr.length - 1){result=result+arr[i]+(","); // 使用中文逗号}else{result=result+arr[i];}}result=result+"]";return result;}
}
♦️练习五:反转字符串
定义一个方法,实现字符串反转。键盘录入一个字符串,调用该方法后,在控制台输出结果例如,键盘录入 abc,输出结果 cba
import java.util.Scanner;
public class Main {public static void main(String[] args) {String str = "abc";String chs=reverse(str);System.out.println(chs);}public static String reverse(String str){String result="";for (int i = str.length()-1; i>=0; i--){char c=str.charAt(i);//将字符串某索引的值赋值于cresult=result+c;}return result;}}
♦️练习六:金额转换
🎏分析:
- 步骤一:定义一个方法可将数字转换为大写
- 步骤二:得到大写数组后在前面补0,补够7位
- 步骤三:插入单位
import java.util.Scanner;
public class Main {public static void main(String[] args) {//1.键盘录入一个金额Scanner sc=new Scanner(System.in);System.out.println("请输入一个金额");int money;//判断输入的金额是否合理//金额合理while(true) {money=sc.nextInt();if (money >= 0 && money <= 9999999) {break;//在循环中才能运用break}//金额不合理else {System.out.println("金额无效");}}//定义一个变量表示前的大写String moneyStr="";//2.得到money里面的每一个数字while(true){//从右往左获取数据,因为右侧时数据的各位int ge=money%10;String capitalNumber=getCapitalNumber(ge);//将得到的大写数字拼接起来moneyStr=capitalNumber+moneyStr;//将MoneyStr和capitalNumber调换位置,防止打印出来是倒着的money/=10;//将money移位,则下一次money%10得到的就是数据的十位if(money==0){break;}}System.out.println(moneyStr);//3.在前面补零,补够7位int count=7-moneyStr.length();for (int i = 0; i < count; i++){moneyStr="零"+moneyStr;}System.out.println(moneyStr);//4.插入单位//定义一个数组表示单位String[] arr={"佰","拾","万","仟","佰","拾","元"};//遍历数组moneyStr,依次得到数组中元素//然后将单位插入进去for (int i = 0; i < moneyStr.length(); i++){char c=moneyStr.charAt(i);System.out.print(c);//注意此处打印不需要换行System.out.print(arr[i]);}}//定义一个方法,将数字变为大写public static String getCapitalNumber (int number){//定义数组,让数字跟大写中文产生一个对应关系String[] arr={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};//返回结果return arr[number];}
}
♦️练习七:手机号屏蔽
🎏方法:
- String substring(int beginIndex,int endIndex)
- 注意点:包头不包尾,包左不包右
- String substring(intbedinIndex) 截取到末尾
import java.util.Scanner;
public class Main {public static void main(String[] args) {//1.获取一个手机号String number="18100000000";//2.录取手机号前面几位String start=number.substring(0,3);//3.录取手机号后面几位String end=number.substring(7);//4.拼接String result=start+"****"+end;System.out.println(result);}
}