Anagrams问题

一、题目: Anagrams问题

  • 问题描述
      Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是

相同的。例如,“Unclear”和“Nuclear”、“Rimon”和“MinOR”都是Anagrams。编写一个程序,输入两个单词,然后判断

一下,这两个单词是否是Anagrams。每一个单词的长度不会超过80个字符,而且是大小写无关的。

输入格式:输入有两行,分别为两个单词。

输出格式:输出只有一个字母Y或N,分别表示Yes和No。

输入输出样例

样例输入

Unclear

Nuclear

样例输出

Y

二、代码和思路

1、代码

/*	Anagrams问题*/
import java.util.Arrays;
import java.util.Scanner;

/**
 * @author GBL
 *
 */
public class Main {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		String str = input.next();
		String str1 = input.next();
		str = str.toUpperCase();// 将字符串全部转化为大写表示
		str1 = str1.toUpperCase();// 将字符串全部转化为大写表示

		char arr[] = new char[str.length()]; // 新建字符数组,长度为字符串的长度
		arr = str.toCharArray();// 调用toCharArray()方法将字符串转为数组

		char arr1[] = new char[str1.length()];
		arr1 = str1.toCharArray();// 调用toCharArray()方法将字符串转为数组
		Arrays.sort(arr); // 调用sort()f方法,对字符数组进行排序
		str = String.valueOf(arr);// 调用String.valueOf()方法,将字符数组转变为字符串
		Arrays.sort(arr1); // 调用sort()f方法,对字符数组进行排序
		str1 = String.valueOf(arr1);// 调用String.valueOf()方法,将字符数组转变为字符串
		if (str.equalsIgnoreCase(str1))// 调用equalsIgnoreCase()判断两个字符串是否相等
			System.out.println("Y");
		else
			System.out.println("N");
	}
}

2、思路

  • 本题首先以字符串的形式输入,然后将字符串全部转换为大写·或小写(我这里采用了大写)方法:大写toUpperCase(),小写toLowerCase(),然后再将两个字符串全部转换成字符数组方法:toCharArray(),在对字符数组进行排序方法:Arrays.sort(),排序之后将字符数组转换为字符串方法:String.valueOf(),最后对字符串进行比较输出结果方法:equalsIgnoreCase()这里可用equalsIgnoreCase()和equalsCase()因为上面已经全部转为大写。

三、个人总结

  • 从本测试中学会了字符串和字符数组的相互转换,toCharArray()将字符串转为字符数组,String.valueOf();将字符数组转为字符串;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值