必做题:
第一题:
定义一个字符串s = "Hello-World",利用API完成如下小需求 1.判断字符串s,与字符串"World"是否相等,并打印出来. 2.用程序得到字符串"Wo",在字符串s中的起始索引. 3.得到s中,3号索引对应的字符,打印到控制台上 4.得到s的长度,打印在控制台上. 5.获得s中的"Hell"字符串,打印在控制台上. 6.获得s中的"orld"字符串,打印在控制台上. 7.将字符串s中的所有o替换为*号.打印在控制台上 8.将字符串s切割成"Hello"和"World"两个字符串,打印在控制台上 9.将字符串s变为字符数组,遍历数组将每个字符打印在控制台上 public static void main(String[] args) { String s="Hello-World"; System.out.println("World".equals(s)); System.out.println(s.substring(6,8)); //System.out.println(s.indexOf("Wo")); System.out.println(s.charAt(3)); System.out.println(s.length()); System.out.println(s.substring(0,4)); System.out.println(s.substring(7,11)); System.out.println(s.replace("o","*")); String[] sp = s.split("-"); for (int i = 0; i < sp.length; i++) { System.out.println(sp[i]); } char[] ch=s.toCharArray(); for (int i = 0; i < ch.length; i++) { System.out.println(ch[i]); } } 第二题: 1.键盘录入一个字符串 2.统计录入的字符串中的大写字母,小写字母,数字分别有多少个. public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入字符串:"); String str = sc.nextLine(); char[] chs = str.toCharArray();//toCharArray()方法将字符串转换为字符数组 int bigNum = 0; int smallNum = 0; int numberNum = 0; int otherNum = 0; for(int i=0;i<chs.length;i++){ if(chs[i]>='A'&&chs[i]<='Z'){ bigNum++; }else if(chs[i]>='a'&&chs[i]<='z'){ smallNum++; }else if(chs[i]>='0'&&chs[i]<='9'){ numberNum++; }else{ otherNum++; } } System.out.println("大写字母个数:"+bigNum); System.out.println("小写字母个数:"+smallNum); System.out.println("数字个数:"+numberNum); System.out.println("其他字符个数:"+otherNum); } 第三题: 1.键盘录入5个字符串,组成一个数组 2.统计录入的字符串数组中的大写字母,小写字母,数字分别有多少个. public static void main(String[] args) { Scanner scanner=new Scanner(System.in); System.out.println("第一个字符串:"); String s1 = scanner.next(); System.out.println("第二个字符串:"); String s2 = scanner.next(); System.out.println("第三个字符串:"); String s3 = scanner.next(); System.out.println("第四个字符串:"); String s4 = scanner.next(); System.out.println("第五个字符串:"); String s5 = scanner.next(); String s6=""; s6 = s6.concat(s1); s6 = s6.concat(s2); s6 = s6.concat(s3); s6 = s6.concat(s4); s6 = s6.concat(s5); char[]chars=s6.toCharArray(); int bigNum=0; int smallNum=0; int num=0; for (int i = 0; i < s6.length(); i++) { char ch=chars[i]; if (ch>='a'&&ch<='z') { smallNum++; }else if (ch>='A'&&ch<='Z') { bigNum++; }else if (ch>='0'&&ch<='9') { num++; } } System.out.println("大写字符数:"+bigNum); System.out.println("小写字符数:"+smallNum); System.out.println("数字字符数:"+num); } 第四题: 1.键盘录入一个字符串 2.将该字符串变成字符数组 3.将字符数组中的所有大写字母变成小写字母 4.如果第一位和最后一位的内容不相同,则交换 5.将字符数组中索引为偶数的元素变成'~' 6.打印数组元素的内容 ------------------------------ 【结果展示】 请输入字符串 abcDEf719 最终显示的效果 ~b~d~f~1~ public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("请输入:"); String str = sc.next(); char[] chars = str.toCharArray(); for (int i = 0; i < chars.length; i++) { if (chars[i] >= 'A'&&chars[i]<='Z') { chars[i]=Character.toLowerCase(chars[i]); } } if (chars[0] != chars[chars.length-1]) { char ch=chars[0]; chars[0] = chars[chars.length-1]; chars[chars.length-1]=ch; } for (int i = 0; i < chars.length; i++) { if (i%2==0) { chars[i]='~'; } } for (int i = 0; i < chars.length; i++) { System.out.print(chars[i]); } } 第五题: 1.键盘录入一个字符串 2.从字符串中随机获取3次字符,将获取的3个字符组成一个新的字符串.打印到控制台上 public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("请输入:"); String val = sc.next(); Random random=new Random(); String str=""; for (int i = 0; i < 3; i++) { str+=val.charAt(random.nextInt(val.length())); } System.out.println(str); } 第六题: 1.创建一个集合,往集合中键盘录入5个字符串 2.遍历集合,将集合中长度大于4的元素末尾加上一个X, 3.遍历集合,将集合打印在控制台上. 例:键盘录入后的集合{"123","ASDFQ","qq","poiuy","asd"} 打印到控制台上的集合{"123","ASDFQX","qq","poiuyX","asd"} public static void main(String[] args) { String[] strs=new String[5]; Scanner sc=new Scanner(System.in); for (int i = 0; i < strs.length; i++) { System.out.println("请输入第"+(i+1)+"组字符串:"); strs[i]=sc.next(); } for (int i = 0; i < strs.length; i++) { if (strs[i].length()>4) { strs[i]=strs[i]+"X"; } } System.out.print("{"); for (int i = 0; i < strs.length; i++) { if (i == strs.length-1) { System.out.print(strs[i]+"}"); }else { System.out.print(strs[i]+","); } } } 第七题: 分析以下需求,并用代码实现 1.定义如下方法public static String getPropertyGetMethodName(String property) 功能描述: (1)该方法的参数为String类型,表示用户传入的参数,返回值类型为String类型,返回值为对应的get方法的名字 (2)如:用户调用此方法时传入参数为"name",该方法的返回值为"getName" 传入参数为"age",该方法的返回值为"getAge" 2.定义如下方法public static String getPropertySetMethodName(String property) 功能描述: (1)该方法的参数为String类型,表示用户传入的参数,返回值类型为String类型,返回值为对应的set方法的名字 (2)如:用户调用此方法时传入参数为"name",该方法的返回值为"setName" 传入参数为"age",该方法的返回值为"setAge" public static void main(String[] args) { System.out.println(getPropertyGetMethodName("name")); System.out.println(getPropertySetMethodName("age")); } public static String getPropertyGetMethodName(String property) { char c = property.charAt(0); String str=Character.toTitleCase(c)+property.substring(1,property.length()); String str1="get"+str; return str1; } public static String getPropertySetMethodName(String property){ char c=property.charAt(0); String str=Character.toTitleCase(c)+property.substring(1,property.length()); String str1="set"+str; return str1; } 第八题: 完成下列题目要求: ①定义方法filter 要求如下: 参数:String [] arr,String str 返回值类型:String [] 实现:遍历arr,将数组中包含参数str的元素存入另一个String 数组中并返回 PS:返回的数组长度需要用代码获取 ②在main方法中完成以下要求: 定义一个String数组arr,数组元素有:"itcast","itheima","baitdu","weixin","zhifubao" 调用1中的filter方法传入arr数组和字符串”it”,输出返回的String数组中所有元素 示例如下: 输出的数组中的元素: "itcast","itheima","baitdu" public static void main(String[] args) { String[] arr={"itcast","itheima","baitdu","weixin","zhifubao"}; String[] filter=filter(arr,"it"); for (int i = 0; i < filter.length; i++) { if (i != filter.length-1) { System.out.print("""+filter[i]+"","); }else { System.out.print("""+filter[i]+"""); } } } public static String[] filter(String[] arr,String str) { int val=0; int val1=0; for (int i = 0; i < arr.length; i++) { if (arr[i].indexOf(str)!=-1) { val++; } } String[] str1=new String[val]; for (int i = 0; i < str1.length; i++) { if (arr[i].indexOf(str)!=-1) { str1[val1]=arr[i]; val1++; } } return str1; } 第九题: a.定义方法public static ArrayList<String> handleString(String [] arr,String str); 实现以下功能: 遍历arr,将数组中包含参数str的元素,含有str的部分替换为*, 存入另一个新String 集合中,将新集合返回; b.在main方法中完成以下要求: 1)定义一个String数组arr,数组元素有:"beijing", "shanghai", "tianjin", "chongqing"; 2)调用handleString方法传入arr数组和字符串”a”,输出返回的String集合中所有元素; 示例如下: 控制台输出元素如下: [sh*ngh*i,ti*njin] public static void main(String[] args) { String[] arr={"beijing", "shanghai", "tianjin", "chongqing"}; ArrayList<String> arrayList=handleString(arr,"a"); System.out.println(arrayList); } public static ArrayList<String> handleString(String[] arr,String str){ ArrayList<String> arr1=new ArrayList<String>(); for (int i = 0; i < arr.length; i++) { if (arr[i].indexOf(str)!=-1) { arr[i]=arr[i].replace(str,"*"); arr1.add(arr[i]); } } return arr1; } 练习题: ======================================================== 第十题: 1.定义一个工具类MathUtils,包含一个静态方法add,功能是:求两个数之和,并将其返回. 2.在测试类中的主方法中测试自己定义的工具类,能通过 类名.方法 调用add方法,计算两个数的和 public class Demo1 { public static void main(String[] args) { System.out.println(MathUtils.add(3,5)); } } public class MathUtils { public static int add(int num1,int num2){ return num1+num2; } }