练习1:判断回文String line = “上海自来水来自海上”;
练习2:统计"123" 在 "123abc124123"中出现的次数
练习3:截取网址中的域名,即baidu
练习4:根据文件名判断是否为png格式的图片
练习5:统计1a23b4c567d89中包含多少个字母,多少个数字
练习1:判断回文String line = “上海自来水来自海上”;
练习1:判断回文String line = “上海自来水来自海上”;
//练习1:判断回文String line = "上海自来水来自海上";
String line = "上海自来水来自海";
System.out.println(line);
for (int i = 0; i < line.length(); i++){
if (line.charAt(i) != line.charAt(line.length() - 1 -i)){
System.out.print("不");break;
}
}
System.out.println("是回文");
}
练习2:统计"123" 在 "123abc124123"中出现的次数
//练习2:统计"123" 在 "123abc124123"中出现的次数
String str = "123abc124123";
String str1 = "123";
int count = 0;
int index = 0;
/*判断str中是否出现包含指定字符串str1,下标变化,
当找到一个str1,返回str1所在下标,之后从该下标位置往后找。
重新给循环迭代因子赋值。*/
while((index = str.indexOf("123",index)) != -1){
count++;
index++;
}
System.out.println(count);//2
练习3:截取网址中的域名,即baidu
//练习3:截取网址中的域名,即baidu,使用substring(int beginIndex,int endIndex)返回子字符串
String url = "www.baidu.com.huacit.cn";
int start = url.indexOf(".");
int end = url.indexOf(".",start+1);
System.out.println(url.substring(start+1,end));
运行结果:
练习4:根据文件名判断是否为png格式的图片
/*练习4:根据文件名判断是否为png格式的图片
使用boolean startsWith(String str); boolean endsWith(String str);*/
String photo = "123.jpg";
if (photo.endsWith(".png")){
System.out.println("是.png图片");
}else{
System.out.println("不是.png图片");
}
练习5:统计1a23b4c567d89中包含多少个字母,多少个数字
//练习5:统计1a23b4c567d89中包含多少个字母,多少个数字
String str3 = "1a23b4c567d89";
int letters = 0;//记录字母个数
int nums = 0;
for (int i = 0; i < str3.length(); i++){
if (str3.charAt(i) >= '0' && str3.charAt(i) <= '9'){
nums++;
}else if (str3.charAt(i) >= 'A' && str.charAt(i) <= 'Z' || str3.charAt(i) >= 'a' && str3.charAt(i) <= 122){
letters++;
}
}
System.out.println("数字有:" + nums + "个");
System.out.println("字母有:" + letters + "个");
完成以下练习:
提示:从控制台获取字符串调用next()或nextLine()方法
- 随机生成一个4位验证码(数字和字母的组合),然后输出到控制台并提示用户输入该验证码.
只要用户输入正确(无论大小写都算),就输出:验证码正确,否则输出:验证码错误。
package JAVA_API.num3_String.StringExcise;
import java.util.Random;
import java.util.Scanner;
/**
* 从控制台获取字符串调用next()或nextLine()方法
* 1. 随机生成一个4位验证码(数字和字母的组合),然后输出到控制台并提示用户输入该验证码.
* 只要用户输入正确(无论大小写都算),就输出:验证码正确,否则输出:验证码错误。
* @author yyc
* 2021/9/7 22:50
*/
public class Test2 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Random random = new Random();
char[] ch = new char[4];
for (int i = 0; i < ch.length;i++) {
int a = random.nextInt(123 - 48) + 48;
if (a > 57 && a < 65 || a > 90 && a < 97) {
i--;
continue;
} else {
ch[i] = (char) a;
}
}
//static String valueOf(int);将基本数据类型转换为字符串类型.
String str = String.valueOf(ch);
System.out.println("验证码为:" + str);
System.out.println("请输入四位验证码:");
String userStr = new Scanner(System.in).nextLine();
//引用类型想要进行对象内容的比较必须在对象所在类重写equals()方法。
if (userStr.toLowerCase().equals(str.toLowerCase()) || userStr.toUpperCase().equals(str.toUpperCase())){
System.out.println("验证码正确");
}else{
System.out.println("验证码不正确");
}
}
}
方式二:
package JAVA_API.num3_String.StringExcise;
import java.util.Random;
import java.util.Scanner;
/**
* * 从控制台获取字符串调用next()或nextLine()方法
* * 1. 随机生成一个4位验证码(数字和字母的组合),然后输出到控制台并提示用户输入该验证码.
* * 只要用户输入正确(无论大小写都算),就输出:验证码正确,否则输出:验证码错误。
* @author yyc
* 2021/9/8 9:59
*/
package JAVA_API.num3_String.StringExcise;
import java.util.Random;
import java.util.Scanner;
/**
* * 从控制台获取字符串调用next()或nextLine()方法
* * 1. 随机生成一个4位验证码(数字和字母的组合),然后输出到控制台并提示用户输入该验证码.
* * 只要用户输入正确(无论大小写都算),就输出:验证码正确,否则输出:验证码错误。
* @author yyc
* 2021/9/8 9:59
*/
public class Test3 {
public static void main(String[] args) {
/*定义验证码池子包含所有数字和所有英文大小写*/
String str = "0123456789qwertyuiopasdfghjklmnbvcxzQWERTYUIOPLKJHGFDSAZXCVBNM";
/*声明随机数对象引用*/
Random random = new Random();
int index = 0;
/*用于拼接验证码*/
String code = "";
for (int i = 0; i < 4;i++){
/*下标生成范围在0-str.length之间*/
index = random.nextInt(str.length());
/*拼接符合的验证码。*/
code += str.charAt(index);
}
/*输出验证码*/
System.out.println(code);
/*提示用户输入验证码*/
System.out.println("请输入验证码:");
/*定义变量接收用户控制台输入的验证码*/
String inputCode = new Scanner(System.in).nextLine();
/*进行判断,因为控制台可能不输入,所以最好用一个已知存在的引用调用equalsIngorCase(String str)方法。*/
if (code.equalsIgnoreCase(inputCode)){
System.out.println("验证码正确!");
}else{
System.out.println("验证码错误!");
}
}
}
2.模拟用户登录。
定义用户类,属性为用户名username和密码password。
使用数组存储多个用户对象。
让用户从控制台输入用户名和密码,与数组中的用户信息进行对比,匹配成功登录成功,否则登录失败。
登录失败分两种情况:当用户名错误,提示没有该用户;当密码错误时,提示密码有误。
package JAVA_API.num3_String.StringExcise;
import java.util.Scanner;
/**
* * 2.模拟用户登录。
* * 定义用户类,属性为用户名username和密码password。
* * 使用数组存储多个用户对象。
* * 让用户从控制台输入用户名和密码,与数组中的用户信息进行对比,匹配成功登录成功,否则登录失败。
* * 登录失败分两种情况:当用户名错误,提示没有该用户;当密码错误时,提示密码有误。
* @author yyc
* 2021/9/8 10:29
*/
public class Login1 {
public static void main(String[] args) {
User1[] users = new User1[2];
users[0] = new User1("Daisy","123abc");
users[1] = new User1("Rose" , "abc123");
System.out.println("请输入用户名:");
String username = new Scanner(System.in).nextLine();
System.out.println("请输入用户密码:");
String password = new Scanner(System.in).nextLine();
for (int i = 0; i < users.length;i++){
//判断用户名是否正确
if (username.equals(users[i].getUsername())){
//判断用户密码是否正确
if (password.equals(users[i].getPassword())){
System.out.println("登陆成功!");
}else{
System.out.println("登录失败,密码错误!");
}
break;
}
//如果i==users.length-1则说明用户不存在
if (i == users.length - 1){
System.out.println("登陆失败,用户不存在!");
}
}
}
}
class User1{
//声明用户属性
private String username;
private String password;
//提供无参构造
public User1() {
}
//提供有参构造
public User1(String username, String password) {
this.username = username;
this.password = password;
}
//提供公有getXXX()方法
public String getUsername() {
return username;
}
public String getPassword() {
return password;
}
}