我正在尝试编写一个方法,它接受字符串中最小的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));
}
}
答案 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);
}
}