文章内容
一、用户登录
二、遍历字符串
三、统计字符个数
四、拼接字符串
五、字符串反转
六、金额转换(较难)
七、手机号屏蔽
八、身份证号码信息查看
九、游戏骂人敏感词替换
一、用户登录
一直正确的用户名和密码,请用程序实现模拟用户登录。总给三次机会,登录之后,给出相应的提示。
import java.util.Scanner;
public class StringDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
String un="zhangsan";
String pw="123456";
for(int i=0;i<3;i++) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入用户名:");
String username=sc.next();
System.out.println("请输入密码:");
String password=sc.next();
if(password.equalsIgnoreCase(pw) && username.equalsIgnoreCase(un)) {
System.out.println("登录成功!");
break;
}else {
System.out.println("用户名或密码错误,请重新输入,您还剩余"+(2-i)+"次");
}
}
}
}
运行结果:
二、遍历字符串
需求:
键盘录入一个字符串,使用程序实现在控制台遍历该字符串
import java.util.Scanner;
public class StringDemo2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str=sc.next();
for(int i=0;i<str.length();i++) {
char c=str.charAt(i);
System.out.print(c+" ");
}
}
}
运行结果:
三、统计字符个数
键盘录入一个字符串,统计该字符串中大写字母字符、小写字母字符、数字字符出现的次数
import java.util.Scanner;
public class StringDemo3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//1.键盘录入一个字符串
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str=sc.next();
int bigWords=0;
int smallWords=0;
int number=0;
for(int i=0;i<str.length();i++) {
char c=str.charAt(i);
//判断是否为大写字母
if(c >='A' && c <='Z') {
bigWords++;
//判断是否为小写字母
}else if(c >='a' && c <='z') {
smallWords++;
//判断是否为数字
}else if(c >='0' && c <='9') {
number++;
}
}
System.out.println("大写字母有"+bigWords+"个");
System.out.println("小写字母有"+smallWords+"个");
System.out.println("数字有"+bigWords+"个");
}
}
运行结果:
四、拼接字符串
定义一个方法,把int数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,并在控制台输出结果。
例如:
数组为:int arr[]=[1,2,3]
执行方法后的结果为:[1,2,3]
import java.util.Scanner;
public class StringDemo4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//1.定义一个数组
int arr[]= {1,2,3};
String str=arrToString(arr);
System.out.println(str);
}
public static String arrToString(int arr[]) {
if(arr==null) {
return "";
}
if(arr.length==0) {
return "[]";
}
String result="[";
//当代码执行到这里表示数组不是null,也不是长度为0的数组
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 StringDemo5 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str=sc.next();
//调用该方法用来反转字符串
String result=reverseArr(str);
System.out.println(result);
}
//调用一个方法
public static String reverseArr(String s) {
String result="";
for(int i=s.length()-1;i>=0;i--) {
char c=s.charAt(i);
result+=c;
}
return result;
}
}
运行结果:
六:金额转换(较难)
import java.util.Scanner;
public class StringDemo6 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//1.键盘录入一个金额
Scanner sc=new Scanner(System.in);
int money;
while(true) {
System.out.println("请输入一个金额:");
money=sc.nextInt();
if(money>=0 && money <=9999999) {
break;
}else {
System.out.println("金额无效");
}
}
//定义一个变量用来表示钱的大写
String moneyStr="";
//2.得到money里面的每一个数字
while(true) {
//从右往左获取数字,因为右侧是数据的个位
int ge=money%10;
String capticalNumber=getCapticalNumber(ge);
moneyStr=capticalNumber+moneyStr;
//去掉刚刚获取的数据
money=money/10;
//如果数字上的每一位全部都获取到了,那么money记录的就是0,此循环结束
if(money==0) {
break;
}
}
//3.
int count=7-moneyStr.length();
for(int i=0;i<count;i++) {
moneyStr="零"+moneyStr;
}
//4.插入单位
String arr[]= {"佰","拾","万","仟","佰","拾","元"};
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 getCapticalNumber(int number) {
String arr[]= {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
return arr[number];
}
}
运行结果:
七、手机号屏蔽
public class StringDemo7 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//1.获取一个手机号码
String phone="13112349468";
//2.截取手机号码前三位
String start=phone.substring(0, 3);
//截取手机号码后四位
String end=phone.substring(7);
//4.拼接
String result=start+"****"+end;
//5.打印
System.out.println(result);
}
}
运行结果:
八、身份证号码信息查看
public class StringDemo8 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//1.定义一个字符串用来存放身份证号码
String id="456147198009093418";
//2.获取出身年月日
String year=id.substring(6, 10);
String month=id.substring(10, 12);
String day=id.substring(12,14);
//4.打印信息:
System.out.println("任务信息为:");
System.out.println("出生年月日:"+year+"年"+month+"月"+day+"日");
//3.获取性别
char gender=id.charAt(16);
int num=gender-48;
if(num%2==0) {
System.out.println("性别为:女");
}else {
System.out.println("性别为:男");
}
}
}
运行结果:
九、游戏骂人敏感词替换
public class StringDemo9 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//1。获取到说的话
String talk="你玩的真好,以后不要玩了,CNM,TMD";
//2.定义一个敏感词库
String arr[]= {"CNM","SB","MLGB","TMD"};
//循环得到数据库中每一个敏感词,依次进行替换
for(int i=0;i<arr.length;i++) {
talk=talk.replace(arr[i], "***");
}
//4.打印结果
System.out.println(talk);
}
}
运行结果: