问题描述
Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的。
例如,“Unclear”和“Nuclear”、“Rimon”和“MinOR”都是Anagrams。编写一个程序,输入两个单词,然后判断一下,这两个单词是否是Anagrams。每一个单词的长度不会超过80个字符,而且是大小写无关的。
输入格式
输入有两行,分别为两个单词。
输出格式
输出只有一个字母Y或N,分别表示Yes和No。
输入输出样例
样例输入
Unclear
Nuclear
样例输出
Y
题解:直接将输入的两个字符串分别全部字母转换成大写(或小写),然后分别进行排序,最后比较即可。
知识点:
String类
该类的对象是字符串常量类String,该类创建的对象是不允许改变的。
字符串变量类StringBuffer
该类创建的对象是允许改变的。
1)String类的构造方法
public String(String value) 利用一个已经存在的字符串常量创建一个新的String类对象。
public String() 用来创建一个空的字符串。
public String(StringBuffer buffer) 该方法是利用一个已经存在StringBuffer类对象为创建String类对象初始化。
public String(char value[]) 该方法是利用已经存在的字符数组来初始化新创建的String类对象。
2)String类的常用方法
public int length() 求字符串的长度.
判断字符串的前缀和后缀
public boolean startsWith(String prefix)
public boolean endsWith(String prefix)
ps:String s1="62881234" String s2="62884321"
这时s1.startsWith("6288")和s2.startsWith("6288")的值都为true。
比较两个字符串:
public int compareTo(String anotherString)
例:
String s1=“Hello",s2="hello";
int i=s1.compareTo(s2);
结果为: -32
public boolean equalsIgnoreCase(String anotherString)
例;
String s1=“Hello",s2="hello";
boolean b2=s1.equalsIgnoreCase(s2);
结果为:true
public boolean equals(Object anObject)
例:
String s1=“Hello",s2="hello";
boolean b1=s1.equals(s2);
结果为:false
求字符串中的字符和子串
public char charAt(int index) 获取某个位置的字符,首字符的位置为0.
public String substring(int startIndex,int endIndex)
该方法是用来获取已知子串中,从startIndex个字符开始,到第endIndex的前一个字符为止的子串。
public String substring(int startIndex)
该方法是用来获取已知子串中,从startIndex个字符开始,到字符串结尾的子串。
连接字符串中的字符和子串
public String concat(String str)
例:
String s1="Welcome”;
System.out.println(s1.concat("your!");
结果为:
Welcome your!
代码中使用的函数如下:
将String中的所有字符转化为大写:
将String中的所有字符转化为小写:
代码如下:
import java.util.Arrays;
import java.util.Scanner;
public class Anagrams {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String s1 = in.next();
String s2 = in.next();
String up1 = s1.toUpperCase();
String up2 = s2.toUpperCase();
char[] ss1 = up1.toCharArray();
char[] ss2 = up2.toCharArray();
if(ss1.length != ss2.length) {
System.out.println("N");
System.exit(0);
}
Arrays.sort(ss1);
Arrays.sort(ss2);
String res1 = new String(ss1);
String res2 = new String(ss2);
if(res1.equals(res2)) {
System.out.println("Y");
}
else System.out.println("N");
in.close();
}
}