首页 > 基础资料 博客日记
Java中的String字符串练习
2024-04-04 08:00:06基础资料围观182次
目录
01-用户登录
package com.xiaonan.exercise06;
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//特别注意 next的字符串是new出来的
//String s = sc.next();
//以后想要比较字符串的内容 就必须要使用String里的方法 equal 或者equal...(忽略字母的大小写)
String id = "莫华南";
String idCode = "Aa123456789";
//一共三次机会
int flag = 3;
for (int i = 0; i < 3; i++) {
System.out.println("请输入您的id");
String userId = sc.next();
System.out.println("请输入您的密码");
///String userIdCode = sc.next();
String userIdCode = sc.next();
//验证id 和密码
if(id.equals(userId) && idCode.equals(userIdCode)){
System.out.println("登录成功!");
break;
}else if(flag==1){
System.out.println("登录失败,账户被锁定");
}else{
System.out.println("您的id或者密码错误,请重新输入"+"剩下("+(--flag)+")次机会");
continue;
}
}
}
}
02-遍历字符串并统计字符个数
package com.xiaonan.exercise06;
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//键盘录入一个字符串
String s = sc.nextLine();
//遍历字符串
// 统计大写字母的个数
int bigLetterCount = 0;
// 统计小写字母的个数
int smallLetterCount = 0;
// 统计数字字符的个数
int dightCount = 0;
for (int i = 0; i < s.length(); i++) {
//s.length() 这个是方法 计算字符串的长度
//s.charAt(int index) 这个也是方法 index是字符串的索引 charAt(int index) 拿出字符串里的每一个字符
char c = s.charAt(i);
if(c>='A' && c<='Z'){
//char类型的变量 在参与运算的时候 自动类型提升为int 查询ASCII表
bigLetterCount++;
}else if(c>='a' && c<='z'){
smallLetterCount++;
}else if(c>='0' && c<='9'){
dightCount++;
}
}
//输出
System.out.println(bigLetterCount+","+smallLetterCount+","+dightCount);
}
}
03-字符串拼接
package com.xiaonan.exercise06;
public class Demo03 {
public static void main(String[] args) {
//定义一个数组
int[] arr = {1, 2, 3, 4, 5, 6};
String s = jointString(arr);
//输出打印
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
System.out.print(c);
}
System.out.println();
}
//拼接字符串
public static String jointString(int[] arr) {
//先加一个 判断数组是否为空
if (arr == null) {
return "";
}
// 判断数组长度是否为0
if (arr.length == 0) {
return "[]";
}
String s = "[";
for (int i = 0; i < arr.length; i++) {
//解释
/**
* 在Java中,当一个字符串与其他类型的数据进行连接操作时,Java会自动将其他类型的数据转换为字符串。
* 这个过程称为字符串的拼接或字符串的连接。
*
* 在代码中,表达式s = s + 12;中,整数12会自动转换为字符串"12",
* 然后与字符串s连接在一起,形成新的字符串"[12"。
*/
if(i==arr.length-1){
s = s + arr[i];
}else{
s = s + arr[i] +",";
}
}
s = s + ']';
return s;
}
}
04-字符串反转
package com.xiaonan.exercise06;
public class Demo04 {
public static void main(String[] args) {
String result = reverser("123456789");
System.out.println(result);
}
//1. 反转字符串
public static String reverser(String str){
//定义一个字符串
String result = "";
for (int i = str.length()-1; i >= 0; i--) {
char c = str.charAt(i);
result = result + c;
}
return result;
}
}
注意点
toCharArray()
是Java中的一个方法,它用于将字符串转换为字符数组。
方法签名如下:
public char[] toCharArray()
该方法返回一个新的字符数组,其中包含了字符串中的所有字符。每个字符都被存储在数组的一个元素中,顺序与字符串中的顺序相同。
这个方法可以用于许多情况,例如:
-
遍历字符串中的每个字符:通过将字符串转换为字符数组,您可以使用循环来遍历并处理每个字符。
-
修改字符串中的字符:字符串是不可变的,即不能直接修改字符串中的某个字符。但是,如果您将字符串转换为字符数组,您可以修改字符数组中的元素,然后再将其转换回字符串。
以下是一个使用 toCharArray()
方法的示例:
String str = "Hello";
char[] charArray = str.toCharArray();
// 遍历字符数组
for (char c : charArray) {
System.out.println(c);
}
// 修改字符数组中的元素
charArray[0] = 'h';
// 将字符数组转换回字符串
String modifiedStr = new String(charArray);
System.out.println(modifiedStr);
输出结果:
H
e
l
l
o
hello
总之,toCharArray()
方法是将字符串转换为字符数组的一种方便的方式,它可以在需要处理单个字符的情况下提供更灵活的操作。
05-金额转化(简单)
package com.xiaonan.exercise06;
import java.util.Scanner;
public class Demo05 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入您的金额");
//定义一个变量 存储金额
int money;
// 1. 判断金额的合法性 最大为7位数字
while (true) {
//重复使用户输入
money = sc.nextInt();
if (money >= 0 && money <= 9999999) {
break;
} else {
System.out.println("金额无效,请重新输入");
}
}
//定义 存储大写字符串
String capitalStr = "";
//2. 转化数字
while (true) {
//拿个位
int unit = money % 10;
String unitStr = capital(unit);
//丢个位 这里是从 money 录入的💴里丢
money /= 10;
// 注意点1: 注意拼接的前后的顺序
capitalStr = unitStr + capitalStr;
//结束循环 这里是当 money==0 时 才退出循环
if (money == 0) {
break;
}
}
//3. 前面补0
//补0的个数
int count = 7 - capitalStr.length();
for (int i = 1; i <= count; i++) {
// 是前面 所以要拼接的顺序改变一下
capitalStr = "零" + capitalStr;
}
//4. 插入单位
//定义一个数组表示单位
String[] str = {"佰","拾","万","仟","佰","拾","元"};
//定义一个字符串 存储结果
String result = "";
for (int i = 0; i < str.length; i++) {
//得到原来的字符串的每一位 并赋值
result = result + capitalStr.charAt(i) + str[i];
}
//输出结果
System.out.println(result);
}
//转化为数字的大写
public static String capital(int number) {
//定义一个大写数字的字符串数组
String[] str = {"零","壹", "贰", "叁", "肆", "伍", "陆", "柒", "玐", "玖"};
//直接返还
return str[number];
}
}
代码解释:
这段代码是一个Java程序,用于将用户输入的金额转换为大写金额表示。
代码解释如下:
-
导入必要的类:
import java.util.Scanner;
这行代码导入了
java.util.Scanner
类,用于从用户输入中读取数据。 -
创建
Scanner
对象:Scanner sc = new Scanner(System.in);
这行代码创建了一个
Scanner
对象,用于读取用户输入。 -
提示用户输入金额:
System.out.println("请输入您的金额");
这行代码打印出提示信息,要求用户输入金额。
-
判断金额的合法性:
while (true) { money = sc.nextInt(); if (money >= 0 && money <= 9999999) { break; } else { System.out.println("金额无效,请重新输入"); } }
这段代码使用一个无限循环,直到用户输入的金额合法(大于等于0且小于等于9999999)才跳出循环。如果金额无效,会打印错误提示信息。
-
定义存储大写金额的字符串:
String capitalStr = "";
-
转化数字:
while (true) { int unit = money % 10; String unitStr = capital(unit); money /= 10; capitalStr = unitStr + capitalStr; if (money == 0) { break; } }
这段代码使用一个无限循环,将金额的每一位数字转换为对应的大写形式,并将其拼接到
capitalStr
字符串的前面。循环结束的条件是金额为0,即所有位数都处理完毕。 -
前面补0:
int count = 7 - capitalStr.length(); for (int i = 1; i <= count; i++) { capitalStr = "零" + capitalStr; }
这段代码计算需要在大写金额前面补0的个数,并使用循环在
capitalStr
字符串的前面添加相应数量的"零"字符。 -
插入单位:
String[] str = {"佰","拾","万","仟","佰","拾","元"}; String result = ""; for (int i = 0; i < str.length; i++) { result = result + capitalStr.charAt(i) + str[i]; }
这段代码定义了一个字符串数组
str
,其中存储了单位(佰、拾、万、仟、佰、拾、元)。然后使用循环,将大写金额的每一位字符和对应的单位字符拼接到result
字符串中。 -
输出结果:
System.out.println(result);
最后,将结果打印出来,即用户输入金额的大写表示。
此代码实现了将用户输入的金额转换为大写金额的功能。
06-手机号屏蔽
package com.xiaonan.exercise06;
public class Demo06 {
public static void main(String[] args) {
//1. 定义一个手机号码
String phoneNumber = "13112349468";
//2. 截取前面的三位
//substring(0,3) 代表前面的三位 包左不包右
String start = phoneNumber.substring(0,3);
//3. 截取后面的四位数字 包左不包右 从7(包括)到末尾 按字符串的下标
String end = phoneNumber.substring(7);
//4. 拼接
String str = start + "****" + end;
//5. 输出
System.out.println(str);
}
}
07-身份证号码查看
package com.xiaonan.exercise06;
import java.util.Scanner;
public class Demo07 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入您的身份证号");
//在while外定义 身份证号
String idCard;
while(true){
idCard = sc.next();
if(idCard.length()!=18){
System.out.println("您输入的身份证号码有误,请重新输入");
}else {
System.out.println("输入成功");
break;
}
}
//1. 获取出生年月日
String year = idCard.substring(6,10);
String month = idCard.substring(10,12);
String day = idCard.substring(12,14);
//2. 获取性别
String gender = idCard.substring(16,17);
char c = gender.charAt(0);
//这里的test的值为 ASCII码值 不是真正的"数字"
//我要拿的是里面的之前存储的数字1,2 来计算 而不是拿数字对应的码值来计
int test = (int)c; //所以这是错的
System.out.println("--------"+test);
//**注意点1, 这里要转化**
if((c-'0')%2==0){ // 判断奇偶数 判断的是 余数是否为0(偶数) 不为0(奇数)
gender = "女";
}else{
gender = "男";
}
//3. 输出
System.out.println("人物信息为");
System.out.println(year+"年"+month+"月"+day+"日");
System.out.println("性别为: "+gender);
}
}
易错点:
**//2. 获取性别 String gender = idCard.substring(16,17); char c = gender.charAt(0); //这里的test的值为 ASCII码值 不是真正的"数字" //我要拿的是里面的之前存储的数字1,2 来计算 而不是拿数字对应的码值来计 int test = (int)c; //所以这是错的 System.out.println("--------"+test); //注意点1, 这里要转化 if((c-'0')%2==0){ gender = "女"; }else{ gender = "男"; }
08-敏感词替换
package com.xiaonan.exercise06;
public class Demo08 {
public static void main(String[] args) {
String talk = "TMD,我CNM,Sb玩意莫华南MLGB,TMD,TMD";
//1. 定义一个敏感词 数组(库)
String[] arr = {"TMD","CNM","Sb","MLGB"};
//2. 替换敏感词
for (int i = 0; i < arr.length; i++) {
talk = talk.replace(arr[i],"***");
//方法原理 看输出的语句就知道了
System.out.println(talk);
}
//3.输出
System.out.println(talk);
}
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
上一篇:搜索引擎-03-搜索引擎原理
下一篇:Java生成随机数