1. 密码强度检测
- 题目描述:生活中,为保证账户安全,密码需要有一定强度。编写一个方法,接收一个字符串作为密码,判断其是否符合以下强度要求:长度至少为 8 位,包含至少一个大写字母、一个小写字母和一个数字。
- 测试数据:
- 输入:
"Abc12345"
,输出:true
- 输入:
"abc123"
,输出:false
- 输入:
"ABCDEFGH"
,输出:false
- 输入:
import java.util.Scanner;
public class ppwdTest {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
do {
System.out.println("输入密码:");
String str = input.next();
boolean upper = false;
boolean lower = false;
boolean num = false;
boolean pwdLength = false;
for (int i=0; i < str.length(); i++) {
char strWord=str.charAt(i);
if (Character.isUpperCase(strWord)) {
upper=true;
}
if (Character.isDigit(strWord)) {
num=true;
}
if (Character.isLowerCase(strWord)) {
lower=true;
}
}
if (str.length()>=8){
pwdLength = true;
}
if (pwdLength == false){
System.out.println("密码长度至少8位!");
}
if (upper == false){
System.out.println("密码需包含大写字符!");
}
if (lower == false){
System.out.println("密码需包含小写字符!");
}
if (num == false){
System.out.println("密码需包含数字!");
}
if(upper == true && lower == true && num == true){
System.out.println("密码符合条件!");
break;
}
}while (true);
}
}
输出结果:
2. 地址信息提取
- 题目描述:在填写收货地址时,地址格式通常为 “省份 - 城市 - 详细地址”。编写一个方法,接收完整地址字符串,分别返回省份、城市和详细地址信息。
- 测试数据:
- 输入:
"
广东省 - 广州市 - 天河区某街道"
,输出:省份:"
广东省"
,城市:"
广州市"
,详细地址:"
天河区某街道"
- 输入:
public class AddressTest {
public static void main(String[] args) {
String address = "广东省 - 广州市 - 天河区某街道";
String[] str = address.split(" - ");
if (str.length == 3) {
String province = str[0];
String city = str[1];
String addressDetail = str[2];
System.out.println("省份:" + province + ",城市:" + city + ",详细地址:" + addressDetail);
} else {
System.out.println("输入的地址格式不正确。");
}
}
}
输出结果:
3. 文件名扩展名分离
- 题目描述:在处理文件时,经常需要分离文件名和扩展名。编写一个方法,接收一个完整文件名(包含扩展名)的字符串,分别返回文件名和扩展名。
- 测试数据:
- 输入:
"example.txt"
,输出:文件名:"example"
,扩展名:"txt"
- 输入:
"document.pdf"
,输出:文件名:"document"
,扩展名:"pdf"
- 输入:
public class fileTest {
public static void main(String[] args) {
String file = "example.txt";
int dotIndex = file.lastIndexOf('.');
String fileName = file.substring(0, dotIndex);
String extension = file.substring(dotIndex + 1);
System.out.println("文件名:" + fileName + ",扩展名:" + extension);
String file2 = "document.pdf";
dotIndex = file2.lastIndexOf('.');
fileName = file2.substring(0, dotIndex);
extension = file2.substring(dotIndex + 1);
System.out.println("文件名:" + fileName + ",扩展名:" + extension);
}
}
输出结果:
4. 歌词分行处理
- 题目描述:在音乐软件中,歌词一般按行显示。假设歌词以字符串形式存储,每行歌词之间用换行符
\n
分隔。编写一个方法,接收歌词字符串,返回每行歌词组成的字符串数组。 - 测试数据:
- 输入:
"
我和我最后的倔强\n握紧双手绝对不放"
,输出:["
我和我最后的倔强", "握紧双手绝对不放"]
- 输入:
public class MusicTest {
public static void main(String[] args) {
String music = "我和我最后的倔强\n握紧双手绝对不放";
String[] lines = music.split("\n");
for (int i = 0; i < lines.length; i++) {
System.out.print( lines[i]);
if (i < lines.length - 1) {
System.out.print(", ");
}
}
}
}
输出结果:
5. 商品价格格式化
- 题目描述:在电商平台展示商品价格时,通常会将价格格式化为带有千位分隔符且保留两位小数的形式。编写一个方法,接收一个表示价格的字符串(如
"1234.5"
),返回格式化后的价格字符串(如"1,234.50"
)。 - 测试数据:
- 输入:
"1234.5"
,输出:"1,234.50"
- 输入:
"1000"
,输出:"1,000.00"
- 输入:
import java.util.Scanner;
public class PriceTest {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入价格:");
String price = input.next();
int dotIndex = price.lastIndexOf('.');
String priceHigh;
String priceLow;
if (price.contains(".")){
priceHigh = price.substring(0, dotIndex);
priceLow = price.substring(dotIndex + 1);
}else {
priceHigh = price;
priceLow = "00";
}
StringBuffer priceSbf = new StringBuffer(priceHigh);
for (int i = priceHigh.length() - 3; i > 0; i-=3) {
priceSbf.insert(i, ",");
}
System.out.println("价格为:"+priceSbf.toString()+"."+priceLow);
}
}
输出结果: