实用类题目
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);}
}
输出结果: