请教:在java中定义一个字符串数组,然后将多个字符设为空,依次与后面对调返回一个新的数组。

来源:百度知道 编辑:UC知道 时间:2024/07/01 01:52:35
public static void main(String [] args){
String [] str = new String[]{"a","b","c","d","e","f","g","h","i","j"};
str[1]=null;
str[2]=null;
str[3]=null;
//str[4]=null;
int count=-1;
for(int i=0;i<str.length;i++){
if(str[i]==null){
count++;
for(int j=i;j<str.length-count;j++){
String temp=str[i];
str[i]=str[str.length-count-1];
str[str.length-count-1]=temp;
}
}
}
}
我这么写总有问题,哪位好人帮我看哈是哪里的问题啊,帮到改哈啊,谢谢

for(int i=0;i<str.length;i++){
应该是i<str.length/2吧?如是i<str.length你到最后。不是又换回来了

public static void main(String[] args) {
String[] str = new String[] { "a", "b", "c", "d", "e", "f", "g", "h",
"i", "j" };
List<String> list = new ArrayList<String>(Arrays.asList(str));
list.remove("a");// 这个时候就是list.remove(0);
//可以按下标移除也可以按内容移除,移除自动往前排列
str = list.toArray(new String[list.size()]);
for (int i = 0; i < str.length; i++) {
System.out.println(str[i]);
}
}

String [] str = new String[];
str[]={"a","b","c","d","e","f","g","h","i","j"};

最外层的循环次数要控制好,两个对调,只要对调str.length()/2次就好了,你对换str.length()次就又把数组还原了不是。