问题描述
1.输入一个单词,长度不限;2.当输入完这个单词后,弹出的窗口中用“_”代表要猜的单词的个数,例如:apple——“_ _ _ _ _”;3.当输入对的字母时,“_”就变成相对应的字母;4.当输入错的字母时,此窗口显示输入错的字母是哪个;记录所输入的全部字母,无论是对的字母还是错误字母,显示出来的只有一个;如果所猜的单词中有多个相同字母,那么只要输入的字母正确,就全部显示出来。5。如果重复输入相同的字母,只显示一次此字母,不再重复显示;6.输入的字母忽略大小写,一共有10此机会。一共就这些要求啦,希望大侠们看看啊!!!小弟真的不会哦。。。。 问题补充:非常感谢大侠的帮忙,以后我会多多努力学习java的,这个给了我很大的信心!!!
解决方案
你试试看public static void main(String args[]) {int count = 10;System.out.println("Input the word to be guess ");char[]words=getInputWords().toCharArray();char[]result=new char[words.length];Arrays.fill(result, '_');while(count!=0){String input = getInputWords().toLowerCase();if(input.length()!=1){System.out.println("intput error");continue;}guess(words,input.charAt(0),result); System.out.println("input:"+input+"tt"+arrayToString(result)); if(checkIsEnd(words,result)) break; count--;}}private static boolean checkIsEnd(char[] words, char[] result) {for(int i=0;i<words.length;i++){if(words[i]!=result[i]) return false;}return true;}public static String getInputWords(){Scanner in = new Scanner(System.in);String input =in.next();return input;}public static void guess(char[] target,char input,char[] result){for(int i=0;i<target.length;i++){if(target[i]==input){result[i]=input;}}}public static String arrayToString (char[] array){StringBuilder sb = new StringBuilder(array.length*2);for(char o : array){sb.append(o).append(",");}sb.deleteCharAt(sb.length()-1);return sb.toString();}