第1关length()方法与compareTo()方法的使用 - 花名册
编程要求
本关的编程任务是补全右侧代码片段中Begin至End中间的代码,具体要求如下:
roster1变量为之前的全班花名册,roster2变量为小明统计的全班花名册。
你将被要求输出3行:
第一行为roster1的长度;
第二行为roster2的长度;
第三行为两个花名册是否相同,若相同,输出“相同”;反之输出“不相同”(若姓名顺序不同,也算作不相同)。
评测说明
平台将自动编译补全后的代码,并生成若干组测试数据,接着根据程序的输出判断程序是否正确。
以下是测试样例:
测试输入:
张三 李四 王五 小明
李明 张三 小明 王五
预期输出:
11
11
不相同
package step1;
import java.util.Scanner;
public class Roster {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
/********** Begin *********/
Scanner sc = new Scanner(System.in);
String string1 =sc.nextLine();
String string2 = sc.nextLine();
System.out.println(string1.length());
System.out.println(string2.length());
int a = string1.compareTo(string2);
if(a != 0){
System.out.println("不相同");
}
else{
System.out.println("相同");
}
/********** End *********/
}
}
第2关:substring()方法与indexOf()方法的使用 - 姓名查找
编程要求
本关的编程任务是补全右侧代码片段中Begin至End中间的代码,具体要求如下:
data变量为乱码文件的文本数据,由命令行读入;
name变量为需要查找的姓名,由命令行读入;
你将被要求输出若干行,每一行为查找到的姓名的位置。
评测说明
平台将自动编译补全后的代码,并生成若干组测试数据,接着根据程序的输出判断程序是否正确。
以下是测试样例:
测试输入:
我嗨李四各位哦给李四复位后发我肥沃李四放我访问后李樊红伟四分嚄嚄嚄范围李四佛为红包蓝色配个好玩李四
李四
预期输出:
2
8
17
35
47
package step2;
import java.util.Scanner;
public class NameSearch {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
/********** Begin *********/
String data = sc.nextLine();
String name = sc.nextLine();
int i = 0, str = 0;
while(i <= data.length()){
str = data.indexOf(name, i); //从第i个位置开始查找name
if(str != -1){
System.out.println(str);
i = str + 1;
}
else i++;
}
/********** End *********/
}
}
第3关:String串类操作 - 文件名与邮箱验证
编程要求
请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:
判断输入的Java文件名是否正确,判断邮箱格式是否正确。其中:合法的文件名应该以 .java 结尾;合法的邮箱名中至少要包含 @ , 并要求 @ 在 . 之前。
测试说明
文件名(fileName)和邮箱(email)会作为函数的参数传入。
输入:
HelloWorld.java
[email protected]
输出:
Java文件名正确
邮箱名正确
输入:
.java
123456@qq.@com
输出:
Java文件名无效
邮箱名无效
package step3;
import java.util.*;
public class HelloWorld {
public void judge(String fileName,String email){
//请在此添加实现代码
/********** Begin **********/
int point = fileName.lastIndexOf(".");
String name = fileName.substring(point+1,fileName.length());
if(point != 0&&point != -1&& name.equals("java")){
System.out.println("Java文件名正确");
}else{
System.out.println("Java文件名无效");
}
int index1 = email.lastIndexOf(".");
int index2 = email.lastIndexOf("@");
if(index2 != -1&&index2<index1){
System.out.println("邮箱名正确");
}else{
System.out.println("邮箱名无效");
}
/********** End **********/
}
}
第4关:StringBuffer类的定义和使用 - 字母反转
编程要求
本关的编程任务是补全右侧代码片段中Begin至End中间的代码,具体要求如下:
data变量为需要进行反转的文本;
ans变量为反转后的文本。
评测说明
平台将自动编译补全后的代码,并生成若干组测试数据,接着根据程序的输出判断程序是否正确。
以下是测试样例:
测试输入:
oT eb ro ton ot eb
预期输出:
To be or not to be
package step4;
public class Reverse {
public static StringBuffer start(String data) {
StringBuffer ans = new StringBuffer();
/********** Begin *********/
String[] s = data.split(" ");
for(int i=0;i<s.length;i++){
if(i != 0)
ans.append(" ");
ans.append(new StringBuffer(s[i]).reverse());
}
/********** End *********/
return ans;
}
}