将最低char增加到字符串的最高char

时间:2017-03-05 06:32:15

标签: java

我正在尝试编写一个方法,它接受字符串中最小的char并将其递增到字符串中的最高字符,但是,最终字符串不能包含原始字符串中的任何字符(例如:输入:“zoo”输出:“pqrstuvwxy”,输入:“hello”输出:“fgijkmn”。我试图通过排序但它不起作用。

import java.util.Arrays;
import java.util.Scanner;

public class MissingLetters {
    public static String GetMissingLetters(String testString){
        char[] chars=testString.toCharArray();
        Arrays.sort(chars);
        String newWord=new String(chars);
        char[] a = new char[newWord.length()];
        for(int i=0;i<=newWord.length();i++){
            a[i]=newWord.charAt(i);
            char s=newWord.charAt(0);
            char t=newWord.charAt(newWord.length());
            for(char c=s;c<=t;c++){
                newWord=Character.toString(c);
            }
        }
        return newWord;
    }
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        String n=input.nextLine();
        System.out.print(GetMissingLetters(n));
    }
}

1 个答案:

答案 0 :(得分:0)

如果您使用所有小写或大写字母,以下代码将适用于您。如果你想使用混合大小写的字母并且不想要符号,那么你必须改变循环的逻辑并附加(注释为// 1和// 2)。

public class MissingLetters {

public static void main(String[] args) {

    String input = "hello";
    char[] chars = input.toCharArray();
    Arrays.sort(chars);
    String newString = "";
     for(char ch = chars[0] ; ch <= chars[chars.length-1] ; ch++ ){//1
         newString = newString+ch;// 2
   }
     System.out.println("New String is :"+newString);

}

}