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 + " ");
}
}
}
}