/*问题描述
Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的。
例如,“Unclear”和“Nuclear”、“Rimon”和“MinOR”都是Anagrams。编写一个程序,输入两个单词,然后判断一下,
这两个单词是否是Anagrams。每一个单词的长度不会超过80个字符,而且是大小写无关的。
输入格式:输入有两行,分别为两个单词。
输出格式:输出只有一个字母Y或N,分别表示Yes和No。
输入输出样例
样例输入
Unclear
Nuclear
样例输出
Y
分析:先把字符串转成小写,便于排序
转成字符数组,然后按字符顺序排序,
排序后的结果以字符数组或字符串返回
*/
import java.util.Scanner;
public class SfDome3 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String str=sc.nextLine();
String str1=sc.nextLine();
boolean f=isAnagrams(str, str1);
if(f==true){
System.out.println("Y");
}else{
System.out.println("NO");
}
}
//判断
/*方法二:
* public static boolean isAnagrams(String str,String str1){
char[] ch=proStr(str.trim());
char[] ch1=proStr(str1.trim());
for(int i=0;i<ch.length;i++){
if(ch[i]!=ch1[i]){
return false;
}
}
return true;
}
//jdk1.7新特性
public static char[] proStr(String str){
//转小写
str=str.toLowerCase();
//转数组
char[] ch=str.toCharArray();
//按字母顺序排序
for(int i=0;i<ch.length-1;i++){
for(int j=0;j<ch.length-1;j++){
if(ch[j]>ch[j+1]){
char k=ch[j];
ch[j]=ch[j+1];
ch[j+1]=k;
}
}
}
return ch;
}*/
/*方法一*/
//判断
public static boolean isAnagrams(String str,String str1){
if(proStr(str.trim()).equals(proStr(str1.trim()))){
return true;
}
return false;
}
public static String proStr(String str){
//转小写
str=str.toLowerCase();
//转数组
char[] ch=str.toCharArray();
//按字母顺序排序
for(int i=0;i<ch.length-1;i++){
for(int j=0;j<ch.length-1;j++){
if(ch[j]>ch[j+1]){
char k=ch[j];
ch[j]=ch[j+1];
ch[j+1]=k;
}
}
}
return new String(ch);
}
}
|