字符串
用户登录案例
已知用户名和密码,请用程序实现模拟用户登录。总共给三次机会,登录之后,给出相应的提示
先设置正确的用户名密码,然后3次for循环给用户输入
package com.itheima;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
String rightUserName = "admin";
String rightPassword = "123456";
//键盘录入
Scanner sc = new Scanner(System.in);
//3次机会
for (int i = 0; i < 3; i++) {
System.out.println("请输入用户名:");
String userName = sc.next();
System.out.println("请输入密码:");
String password = sc.next();
if (rightUserName.equals(userName) && rightPassword.equals(password)) {
System.out.println("登录成功!");
break;
} else {
if(i==2){
System.out.println("账户" + userName + "被锁定,请联系黑马程序员官方小姐姐:XXXXXXX");
}
System.out.println("用户名或密码错误,登录失败,还剩下" + (2 - i) + "次机会");
}
}
}
}
遍历字符串
键盘录入一个字符串,使用程序实现在控制台遍历该字符串
录入一个字符串后,用charAt来获取字符串中每一个字符
package com.itheima;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
//1.键盘录入一个字符串
Scanner sc = new Scanner(System.in);
System.out.println("请输入字符串");
String str = sc.next();
System.out.println(str);
//2.遍历
for (int i = 0; i < str.length(); i++) {
//i 依次表示字符串的每一个索引
//索引的范围:0 ~ 长度-1
//根据索引获取字符串里面的每一个字符
//ctrl + alt + V 自动生成左边的接受变量
char c = str.charAt(i);
System.out.println(c);
}
}
}
统计字符次数
键盘录入一个字符串,统计该字符串中大写字母字符,小写字母字符,数字字符出现的次数(不考虑其他字符)
思路和上一题差不多,多了一步判断
package com.itheima;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
//1.键盘录入一个字符串
Scanner sc = new Scanner(System.in);
System.out.println("请输入字符串");
String str = sc.next();
//2.统计 --- 计数器count
int smallCount = 0;
int bigCount = 0;
int numberCount = 0;
for (int i = 0; i < str.length(); i++) {
//i 表示字符串中的索引
//c 表示字符串中的每一个字符
char c = str.charAt(i);
if(c >= 'a' && c <= 'z'){
smallCount++;
}else if(c >= 'A' && c <= 'Z'){
bigCount++;
}else if(c >= '0' && c <= '9'){
numberCount++;
}
}
System.out.println("大写字符有:" + bigCount + "个");
System.out.println("小写字符有:" + smallCount + "个");
System.out.println("数字字符有:" + numberCount + "个");
}
}
字符串拼接
定义一个方法,把 int 数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,
并在控制台输出结果。例如,数组为 int[] arr = {1,2,3}; ,执行方法后的输出结果为:[1, 2, 3]
package com.itheima;
public class Main {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5};
String str = arrToString(arr);
System.out.println(str);
}
private static String arrToString(int[] arr) {
String str = "";
str+="[";
for (int i = 0; i < arr.length; i++) {
str+=arr[i];
if(i!=arr.length-1){
str+=",";
}
}
str+="]";
return str;
}
}
字符串反转
定义一个方法,实现字符串反转。键盘录入一个字符串,调用该方法后,在控制台输出结果
例如,键盘录入 abc,输出结果 cba
倒着输出
package com.itheima;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串");
String str = sc.next();
String result = reverse(str);
System.out.println(result);
}
//核心思想:倒着遍历并进行拼接就可以了
public static String reverse(String str){//abc
String s = "";
for (int i = str.length() - 1; i >= 0; i--) {
s = s + str.charAt(i);
}
return s;
}
}
金额转换
把2135变成:零佰零拾零万贰仟壹佰叁拾伍元
把789变成:零佰零拾零万零仟柒佰捌拾玖元
拆分为几个步骤:把数字变为大写、补全为七位数
package com.itheima;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
//1.输入金额,不超过七位数
Scanner sc = new Scanner(System.in);
int money;
//使用while循环,直到得到正确的金额
while (true) {
System.out.println("请输入金额:");
money = sc.nextInt();
if(money>=0 && money<=9999999){
break;
}else{
System.out.println("输入有误,请重新输入");
}
}
//2.将金额转换为大写金额
String moneyStr="";
while(true){
int ge=money%10;
String capitalMoney = getCapitalMoney(ge);
moneyStr=capitalMoney+moneyStr;
money=money/10;
if(money==0){
break;
}
}
//3.在前面插入零,补全金额为7位数
int count=7-moneyStr.length();
for (int i = 0; i < count; i++) {
moneyStr="零"+moneyStr;
}
//4.插入单位
String result = "";
String[] danwei = {"佰","拾","万","仟","佰","拾","元"};
for(int i=0;i<moneyStr.length();i++){
char ch = moneyStr.charAt(i);
result = result+ch + danwei[i] ;
}
System.out.println(result);
}
private static String getCapitalMoney(int ge) {
String[] CapitalMoney={"零","壹","贰","叁","肆","伍","陆","柒","捌", "玖"};
return CapitalMoney[ge];
}
}
手机号屏蔽
以字符串的形式从键盘接受一个手机号,将中间四位号码屏蔽。最终效果为:131****9468。
package com.itheima;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
//1.键盘录入一个手机号码
Scanner sc = new Scanner(System.in);
System.out.println("请输入手机号码");
String phoneNumber = sc.next();
//2.截取手机号码中的前三位
String star = phoneNumber.substring(0, 3);
//3.截取手机号码中的最后四位
String end = phoneNumber.substring(7);
//4.拼接
String result = star + "****" + end;
System.out.println(result);
}
}