第1关:length()方法与compareTo()方法的使用
算法设计
1 判断字符串长度是否相同
2 相同输出相同否者输出不相同
代码如下
package step1;
import java.util.Scanner;
public class Roster {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s1 = sc.nextLine();
String s2 = sc.nextLine();
System.out.println(s1.length());
System.out.println(s2.length());
if(s1.equals(s2))
System.out.println("相同");
else
System.out.println("不相同");
}
}
第2关:substring()方法与index
算法设计
- 取出李四这2个字符
- 循环遍历
- 判断第i个等于“李”吗?i+1 等于“四”吗
- 等于就打印所在下标
代码如下
package step2;
import java.util.Scanner;
public class NameSearch {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s1 = sc.nextLine(); // 读入2个字符串遇见回车读入结束
String name = sc.nextLine();
char x = name.charAt(0); // 取出李四
char y = name.charAt(1);
// (x);
char a[]= s1.toCharArray(); // 变为字符数组利于操作
for (int i = 0; i < a.length; i++) // 循环遍历
{
if(x == a[i] && y == a[i + 1]) // i = 李 i + 1 = 四,就是我们要找的下标
System.out.println(i);
}
/********** End *********/
}
}
第3关:String串类操作练习 - 文件名与邮箱验证
算法设计
- java文件按“."分割,邮箱按“@”
- 分成X部分判断后缀是否符合要求
- 注意在“.”正则表达式中已有语义我们需要用转义字符转成我们认值的“."
代码如下
package step3;
public class HelloWorld {
public void judge(String s1, String s2) {
//请在此添加实现代码
/********** Begin **********/
String str1[] = s1.split("\\."); // 按点拆分
String str2[] = s2.split("@");
// 判断后缀是否为java和长度是否正确
if (str1.length >= 3 && str1[1].equals("java") && str1[2].equals("java"))
System.out.println("Java文件名正确");
else if (str1.length == 2 && str1[0].length() > 0 && str1[1].equals("java"))
System.out.println("Java文件名正确");
else
System.out.println("Java文件名无效");
// 判断邮箱
if (str2.length == 2)
System.out.println("邮箱名正确");
else
System.out.println("邮箱名无效");
/********** End **********/
}
}
第4关:StringBuffer类的定义和使用 - 字母反转
算法设计
- 按空格拆分字符串
- 循环遍历拆分的字符串
- 在循环的反转
- 存下反转字符串
- 删除当前字符串
代码如下
package step4;
public class Reverse {
public static StringBuffer start(String d) {
StringBuilder sb = new StringBuilder();
StringBuffer ans = new StringBuffer(); // 用用保存结果
String data[] = d.split(" "); // 空格拆分
// 循环遍历
for (int i = 0; i < data.length; i++) {
sb.append(data[i]); // 得到拆分的每一个字符
sb.reverse(); // 反转字符
ans.append(sb + " "); // 添加进去记得+ 空格
sb.delete(0, sb.length()); // 删除当前字符串
}
/********** End *********/
return ans;// 返回结果
}
}