字母重排-程序设计编程

来源:互联网 发布:软件项目外包平台 编辑:程序博客网 时间:2024/06/07 12:21

题目:输入一个字典(用******结尾),然后再输入若干个单词。每输入一个单词w,你都需要在字典中找出所有可以用w的字母重排后得到的单词,并按照字典序从小到大的顺序在一行中输入(如果不存在,输出:()。输入单词之间用空格或空行隔开,且所有输入单词都由不超过6个小写字母组成。注意,字典中的单词不一定按字典序排列。


Java代码实现:

package java532;import java.util.ArrayList;import java.util.Arrays;import java.util.List;import java.util.Scanner;public class 字母重排 {public static void main(String[] args) {List<String> datas = new ArrayList<String>();Scanner scanner = new Scanner(System.in);System.out.println("请输入字典:");//输入存入List中while(scanner.hasNext()){String inputStr = scanner.next();if(inputStr.equals("******")){break;}else{datas.add(inputStr);}}System.out.println("-----输入完毕-----");//输入单词while(scanner.hasNext()){String inputWord = scanner.next();System.out.println("结果为:");isIn(datas, inputWord);}}private static void isIn(List<String> datas, String inputWord){for(int i=0;i<datas.size();i++){char[] testArr = inputWord.toCharArray();char[] arr = datas.get(i).toCharArray();//待比较的Arrays.sort(testArr);Arrays.sort(arr);if(String.valueOf(testArr).equals(String.valueOf(arr))){//如果相等了System.out.println(String.valueOf(datas.get(i)));break;}else if(i == datas.size() -1){//所有的都不相等System.out.println(":(");}}}}


0 0