学习视频链接:https://www.bilibili.com/video/BV17F411T7Ao
完成课堂上所有练习哦
练习:http://t.csdn.cn/UVyqE
键盘输入任意字符串,打乱里面的内容
package cn.kox.homework;
import java.util.Random;
import java.util.Scanner;
/**
* @ClassName: codeHomework02
* @Author: Kox
* @Data: 2023/1/22
* @Sketch: 题目2
*/
public class codeHomework02 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入一个字符串:");
String str = sc.next();
char[] arr = str.toCharArray();
Random r = new Random();
for (int i = 0; i < arr.length; i++) {
int index = r.nextInt(arr.length);
char temp = arr[i];
arr[i] = arr[index];
arr[index] = temp;
}
String newStr = new String(arr);
System.out.println(newStr);
}
}
生成验证码
内容:可以是小写字母,也可以是大写字母,还可以是数字
规则:
长度为5
内容中是四位字母,1位数字。
其中数字只有1位,但是可以出现在任意的位置。
package cn.kox.homework;
import java.util.Random;
/**
* @ClassName: codeHomework03
* @Author: Kox
* @Data: 2023/1/22
* @Sketch: 题目3
*/
public class codeHomework03 {
public static void main(String[] args) {
char[] chs = new char[52];
for (int i = 0; i < chs.length; i++) {
if (i <= 25) {
chs[i] = (char)(97+i);
} else {
chs[i] = (char)(65 + i - 26);
}
}
StringBuffer sb = new StringBuffer();
Random r = new Random();
for (int i = 0; i < 5; i++) {
if (i == 4) {
int num = r.nextInt(10);
sb.append(num);
break;
}
int index = r.nextInt(chs.length);
sb.append(chs[index]);
}
char[] arr = sb.toString().toCharArray();
for (int i = 0; i < arr.length; i++) {
int index = r.nextInt(sb.length());
char temp = arr[i];
arr[i] = arr[index];
arr[index] = temp;
}
String result = new String(arr);
System.out.println(result);
}
}
请编写程序,由键盘录入一个字符串,统计字符串中英文字母和数字分别有多少个。比如:Hello12345World中字母:10个,数字:5个。
package cn.kox.homework;
import java.util.Scanner;
/**
* @ClassName: codeHomework04
* @Author: Kox
* @Data: 2023/1/22
* @Sketch: 题目4
*/
public class codeHomework04 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str= sc.nextLine();
int strCount = 0;
int numCount = 0;
char[] arr = str.toCharArray();
for (int i = 0; i < arr.length; i++) {
if (arr[i] >= 'A' && arr[i] <= 'Z') {
strCount++;
}
if (arr[i] >= 'a' && arr[i] <= 'z') {
strCount++;
}
if (arr[i] >= '0' && arr[i] <= '9') {
numCount++;
}
}
System.out.printf("strCount: %s, numCount: %s", strCount, numCount);
}
}
请定义一个方法用于判断一个字符串是否是对称的字符串,并在主方法中测试方法。例如:“abcba”、"上海自来水来自海上"均为对称字符串。
package cn.kox.homework;
import java.util.Scanner;
/**
* @ClassName: codeHomework05
* @Author: Kox
* @Data: 2023/1/22
* @Sketch: 题目5
*/
public class codeHomework05 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
StringBuilder sb = new StringBuilder(str);
System.out.println(str.equals(sb.reverse().toString()));
}
}
我国的居民身份证号码,由由十七位数字本体码和一位数字校验码组成。请定义方法判断用户输入的身份证号码是否合法,并在主方法中调用方法测试结果。规则为:号码为18位,不能以数字0开头,前17位只可以是数字,最后一位可以是数字或者大写字母X。
package cn.kox.homework;
import java.util.Scanner;
/**
* @ClassName: codeHomework06
* @Author: Kox
* @Data: 2023/1/22
* @Sketch: 题目6
*/
public class codeHomework06 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String id = sc.next();
System.out.println(verifyId(id));
}
public static boolean verifyId(String id) {
if (id == null) {
return false;
}
if (id.startsWith("0")) {
return false;
}
for (int i = 0; i < id.length(); i++) {
char c = id.charAt(i);
if (i == id.length() - 1) {
if (c < '0' || c > '9' && c != 'X') {
return false;
}
} else {
if (c < '0' || c > '9') {
return false;
}
}
}
return true;
}
}
定义一个方法,把 int 数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,并在控制台输出结果。
要求:
1、如果传递的参数为空,返回null
2、如果传递的数组元素个数为0,返回[]
3、如果数组为int[] arr = {1,2,3}; ,执行方法后的输出结果为:[1, 2, 3]
package cn.kox.homework;
import java.util.StringJoiner;
/**
* @ClassName: codeHomework07
* @Author: Kox
* @Data: 2023/1/22
* @Sketch: 题目7
*/
public class codeHomework07 {
public static void main(String[] args) {
int[] arr = {1, 2 ,3 ,4 ,5};
System.out.println(getString(arr));
}
public static String getString(int[] arr) {
if (arr == null) {
return null;
}
if (arr.length == 0) {
return "[]";
}
StringJoiner sj = new StringJoiner(",", "[", "]");
for (int i = 0; i < arr.length; i++) {
sj.add(arr[i] + "");
}
return sj.toString();
}
}
在String类的API中,有如下两个方法:
// 查找参数字符串str在调用方法的字符串中第一次出现的索引,如果不存在,返回-1
public int indexOf(String str)
// 截取字符串,从索引beginIndex(包含)开始到字符串的结尾
public String substring(int beginIndex)
请仔细阅读API中这两个方法的解释,完成如下需求。
现有如下文本:“Java语言是面向对象的,Java语言是健壮的,Java语言是安全的,Java是高性能的,Java语言是跨平台的”。请编写程序,统计该文本中"Java"一词出现的次数。
package cn.kox.homework;
/**
* @ClassName: codeHomework08
* @Author: Kox
* @Data: 2023/1/22
* @Sketch: 题目8
*/
public class codeHomework08 {
public static void main(String[] args) {
String str = "Java语言是面向对象的,Java语言是健壮的,Java语言是安全的,Java是高性能的,Java语言是跨平台的";
String tar = "Java";
System.out.println(search(str, tar));
}
public static int search(String str, String tar) {
String newStr = str.replace(tar, "");
int count = (str.length() - newStr.length()) / tar.length();
return count;
}
}
public class Test {
public static void main(String[] args) {
String str = "Java语言是面向对象的,Java语言是健壮的,Java语言是安全的,Java是高性能的,Java语言是跨平台的";
String tar = "Java";
// 调用方法并输出
System.out.println(search(str, tar));
}
// 返回值int表示次数,参数列表str表示在哪个字符串中查找,tar表示要查找的目标子串
public static int search(String str, String tar) {
// 定义统计变量表示次数
int count = 0;
// 定义索引变量,表示每次找到子串出现的索引
int index = -1;
// 定义循环,判断条件为在字符串中找到了目标子串
while ((index = str.indexOf(tar)) != -1) { // 将找到的索引赋值给变量并判断
// 次数累加
count++;
// 把查找过的部分剪切掉,从找到的索引+子串长度的位置开始截取。
str = str.substring(index + tar.length());
}
return count;
}
}