Java测试——字符串判等

总时间限制: 1000ms 内存限制: 65536kB

描述
判断两个由大小写字母和空格组成的字符串在忽略大小写,且忽略空格后是否相等。

输入
两行,每行包含一个字符串。
输出
若两个字符串相等,输出YES,否则输出NO。

样例输入

a A bb BB ccc CCC
Aa BBbb CCCccc

样例输出

YES

测试时AC代码

import java.util.Scanner;
public class Main {  
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        StringBuffer sb1=new StringBuffer();
        StringBuffer sb2=new StringBuffer();
        String str1=in.nextLine();
        String str2=in.nextLine();
        String[] s1=str1.split(" ");
        String[] s2=str2.split(" ");
        for(int i=0;i<s1.length;i++) {
            sb1.append(s1[i]);
        }
        String st1=sb1.toString();
        for(int i=0;i<s2.length;i++) {
            sb2.append(s2[i]);
        }
        String st2=sb2.toString();
        if(st1.equalsIgnoreCase(st2)==true)
            System.out.println("YES");
        else System.out.println("NO");
        in.close();
    }
}

机试时第一时间想到的基本思路是把原字符串通过split分割,再分别用StringBuffer内的append方法把字符串数组从第二个元素往后连到第一个元素后面再转回单个字符串;判断时用equalsIgnoreCase方法忽略大小写。
测试后跟同学交流 发现用replaceAll方法更简便(AC):

import java.util.Scanner; 
public class Main { 
    public static void main(String[] args) { 
        Scanner in=new Scanner(System.in); 
        String s1=in.nextLine();
        String s2=in.nextLine();
        if(s1.replaceAll(" ","").equalsIgnoreCase(s2.replaceAll(" ","")))
            System.out.println("YES");
        else
            System.out.println("NO");
        in.close();
    } 
}

看来还是没记熟常用类的各种方法,以后要专门找时间多看看。

你可能感兴趣的:(OpenJudge,-,javastudy)