import java.util.Scanner;
public class Test1 {
/**
* 模拟登录,给三次机会,并提示还有几次机会 1.假设用户名和密码均为admin,如果输入正确,控制台输出:欢迎admin登录
* 2.如果输入错误,控制台输出:录入错误,您还有2次机会(最多有3次机会)
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入:");
for (int i = 1; i <= 3; i++) {
String userName = sc.nextLine();
String passWord = sc.nextLine();
if ("admin".equals(userName) && "admin".equals(passWord)) {
// 如果录入正确的话, 给予提示并且退出循环
System.out.println("欢迎admin登录");
break;
} else {
if (i == 3) {
// 如果满足条件说明是最后一次机会, 特殊打印
System.out.println("您的录入机会已经使用完毕,请明日再来.");
} else {
System.out.println("录入错误,您还有" + (3 - i) + "次机会");
}
}
}
}
}
import java.util.Scanner;
public class Test2 {
/**
* 键盘录入一个字符串,统计该字符串中大写字母字符,小写字母字符,数字字符出现的次数,其他字符出现的次数。
例如键盘录入:ABCDEabcd123456!@#$%^
输出:ABCDEabcd123456!@#$%^中大写字母有:5个,小写字母有:4个,数字字符:6个,其他字符:6个
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入:");
// 定义变量, 接受键盘录入的字符串
String line = sc.nextLine();
// 定义4个变量用来统计每种字符出现的次数
int big = 0;
int small = 0;
int num = 0;
int other = 0;
// 1. 将键盘录入的字符串转成字符数组
char[] arr = line.toCharArray();
// 2. 遍历字符数组, 拿到每一个字符
for (int i = 0; i < arr.length; i++) {
char c = arr[i];
// 3. 让每一个字符都参数范围性的判断
if(c >= 'A' && c <= 'Z'){
big++;
}else if(c >= 'a' && c <= 'z'){
small++;
}else if(c >= '0' && c <= '9'){
num++;
}else {
other++;
}
}
System.out.println(line + "中大写字母有:"+big+"个,小写字母有:"+small+"个,数字字符:"+num+"个,其他字符:"+other+"个");
}
}
public class Test3 {
/**
* (1)有一个数字字符串"25 11 -6 20 102 9",数字之间用空格间隔
* (2)利用冒泡排序对这串数字按照从小到大排序,生成一个数值有序的字符串"-6 9 11 20 25 102"
*/
public static void main(String[] args) {
String s = "25 11 -6 20 102 9";
// 1. 通过空格切割字符串得到字符串数组
String[] sArr = s.split(" ");
// 2. 将数字字符串转换成具体的数值,并用数组进行存储
int[] arr = new int[sArr.length];
for (int i = 0; i < sArr.length; i++) {
// 3. 将每一个数字字符串转换成对应的数字
arr[i] = Integer.parseInt(sArr[i]);
}
// 4. 冒泡排序
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - 1 - i; j++) {
if(arr[j] > arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
// 5. 创建StringBuffer对象用于数组中元素的拼接
StringBuffer sb = new StringBuffer();
for (int i = 0; i < arr.length; i++) {
sb.append(arr[i]+ " ");
}
String result = sb.toString();
System.out.println(result);
}
}
public class Test4 {
/**
* 定义一个MyStringUtil工具类,该类中定义三个方法,要求如下: (1)public static char[]
* toCharArray(String str) :
* 将给定的参数字符串转成对应的字符数组(不能直接调用jdk中的工具类及String类中的tocharArray方法) (2) public
* static String getSingleString(String str) :
* 去除给定的参数字符串中的重符字符(重复字符只保留一个),将新的字符串返回
*
* (3)public static boolean isBalancedString(String str):
* 如果左右两边字符相同则返回true,否则返回false, 例如:abccba是对称字符 例如:abcdecba不是对称字符
*/
public static void main(String[] args) {
System.out.println(MyStringUtil.isBalancedString("abcdecba"));
}
}
class MyStringUtil {
/**
* @param str
* 接受一个字符 串
* @return 返回对应的字符数组
*/
public static char[] toCharArray(String str) {
// 1. 创建char类型的数组, 长度大小跟原字符串长度一致
char[] arr = new char[str.length()];
for (int i = 0; i < str.length(); i++) {
// 2. 通过charAt方法拿到每一个字符,并且赋值给数组中对应的索引.
arr[i] = str.charAt(i);
}
return arr;
}
public static String getSingleString(String str) {
// aaabbbccc // abc
// abc.contains("d");
// 1. 将字符串拆分成字符数组
char[] arr = str.toCharArray();
// 2. 定义新的容器, 用来存储唯一的字符
StringBuffer sb = new StringBuffer();
// 3. 遍历字符数组拿到每一个字符
for (int i = 0; i < arr.length; i++) {
char c = arr[i];
// 4. 拿着每一个字符,判断容器中是否包含传入的字符串.
if (!sb.toString().contains(c + "")) {
// 5. 如果不包含就存储
sb.append(c);
}
}
return sb.toString();
}
public static boolean isBalancedString(String str) {
// 1. 将传入的字符串封装成StringBuffer对象
StringBuffer sb = new StringBuffer(str);
// 2. 将数据翻转
sb.reverse();
// 3. 如果翻转后的结果跟原字符串相同, 说明是对称字符串
if (str.equals(sb.toString())) {
return true;
} else {
return false;
}
}
}
第五题(编程题: 30分)
import java.util.Random;
public class Test5 {
/**
* 定义String getStr(char[] chs)静态方法,方法内要求:从chs中随机获取4个元素,再和1个0-9之间(包含0和9)的整数组成一个五个字符的字符串。
定义main方法,方法内完成:
(1)定义长度为26,元素值为26个大写英文字母的数组chs
(2)传递数组chs调用getStr(char[] chs)方法,获取返回值,并在控制台打印返回值
*/
public static void main(String[] args) {
char[] arr = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
System.out.println(getStr(arr));
}
public static String getStr(char[] chs){
// 随机获取, 需要创建Random对象
Random r = new Random();
// 需要将字符拼接到一起, 定义一个容器
StringBuffer sb = new StringBuffer();
for(int i = 1; i <= 4; i++){
// 根据数组的长度生成随机的索引
int index = r.nextInt(chs.length);
// 通过索引去数组中获取元素,存储到容器当中
sb.append(chs[index]);
}
// 通过nextInt方法生成随机的数字0-9
int num = r.nextInt(10);
// 将生成的结果添加到容器当中
sb.append(num);
// 转成字符串并返回
return sb.toString();
}
}