Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过不改变大写字母和小写字母的原始位置对其进行排序_Java - Fatal编程技术网

Java 通过不改变大写字母和小写字母的原始位置对其进行排序

Java 通过不改变大写字母和小写字母的原始位置对其进行排序,java,Java,输入:String[]str={“B”、“h”、“g”、“h”、“g”、“B”} 在不改变其第一个顺序的情况下,输入字符串“h”中的ex应位于第一位,h将位于第二位。 输出:String[]st={“B”、“B”、“h”、“h”、“g”、“g”} public void stringSelection(String[]str、String[]st、String temp){ 试一试{ int k=0; 对于(int i=0;i这将起作用,我已经测试了- public static void ma

输入:
String[]str={“B”、“h”、“g”、“h”、“g”、“B”}

在不改变其第一个顺序的情况下,输入字符串“h”中的ex应位于第一位,h将位于第二位。 输出:
String[]st={“B”、“B”、“h”、“h”、“g”、“g”}

public void stringSelection(String[]str、String[]st、String temp){
试一试{
int k=0;

对于(int i=0;i这将起作用,我已经测试了-

public static void main(String[] args) {
    String [] str = {"B","h","g","H","G","b"};
    ArrayList list[] = new ArrayList[26];
    for(int i=0; i<str.length; i++){
        int c  = str[i].toLowerCase().charAt(0) - 'a';
        if(list[c] == null){
            list[c] = new ArrayList<String>();
        }
        list[c].add(str[i]);
    }
    for(List<String> newList: list){
        if(newList != null){
            for(String x : newList){
                System.out.print(x + " ");
            }
        }
    }
}
publicstaticvoidmain(字符串[]args){
字符串[]str={“B”,“h”,“g”,“h”,“g”,“B”};
ArrayList[]=新的ArrayList[26];

对于(int i=0;我有问题吗?我想改变它的顺序并得到一个不是问题的输出。到目前为止你尝试了什么?你坚持什么?你需要做一个不区分大小写的排序。使用稳定排序算法进行排序。气泡排序和插入排序是稳定排序算法的示例。我已经尝试过,但我的条件是不改变el例如:如果“h”在第二个位置,而同一个h在HHE旁边,这要感谢这段代码,它起作用了。你能解释一下吗(int c=str[i].toLowerCase().charAt(0)-“a”;)一段代码Hi wasim,如果我们认为ASCII'a'-'a'=0,'b'-'a'=1,'c'-'a'=2……..'z'-'a'=25,那么我创建了26个指向Arraylist的位置,即Arraylist[]=newArrayList[26];并在该位置本身添加这些字符。请在IDE中像intellij/eclipse一样调试这个。
public static void main(String[] args) {
    String [] str = {"B","h","g","H","G","b"};
    ArrayList list[] = new ArrayList[26];
    for(int i=0; i<str.length; i++){
        int c  = str[i].toLowerCase().charAt(0) - 'a';
        if(list[c] == null){
            list[c] = new ArrayList<String>();
        }
        list[c].add(str[i]);
    }
    for(List<String> newList: list){
        if(newList != null){
            for(String x : newList){
                System.out.print(x + " ");
            }
        }
    }
}