Java代码输入一个字符串数组,检查是否有空项,如果为空,就把空字符串放到数组最后,其他字符串顺序不变
时间: 2023-09-20 22:05:55 浏览: 121
### 回答1:
以下是Java代码,可以实现输入一个字符串数组,检查是否有空项,如果为空,就把空字符串放到数组最后,其他字符串顺序不变:
```
public static String[] checkEmpty(String[] arr) {
int emptyCount = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] == null || arr[i].equals("")) {
emptyCount++;
}
}
if (emptyCount == 0) {
return arr;
}
String[] newArr = new String[arr.length];
int j = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] != null && !arr[i].equals("")) {
newArr[j] = arr[i];
j++;
}
}
for (int i = 0; i < emptyCount; i++) {
newArr[j] = "";
j++;
}
return newArr;
}
```
如果输入的字符串数组中有空项,该方法会返回一个新的字符串数组,其中空字符串被放到了数组的最后,其他字符串的顺序不变。如果输入的字符串数组中没有空项,则返回原数组。
### 回答2:
可以通过以下的Java代码实现对字符串数组的空项检查,并将空字符串放到数组的最后,其他字符串的顺序保持不变:
```java
public class Main {
public static void main(String[] args) {
String[] array = {"apple", "", "banana", "", "orange"};
int index = 0;
// 遍历字符串数组
for (int i = 0; i < array.length; i++) {
// 如果当前项为空字符串
if (array[i].equals("")) {
// 交换当前项与最后一项的位置
String temp = array[i];
array[i] = array[array.length - 1];
array[array.length - 1] = temp;
// 下次循环从当前位置继续检查
i--;
// 如果已经遍历到倒数第二个位置,即数组最后一个非空字符串的位置
if (index == array.length - 2) {
// 退出循环
break;
}
// 继续下一次循环时,从下一个位置开始检查
index++;
}
// 如果当前项不为空字符串,则检查下一项
else {
index++;
}
}
// 输出结果
for (String str : array) {
System.out.print(str + " ");
}
}
}
```
以上代码通过遍历字符串数组,如果遇到空字符串则将其与最后一项交换位置,并通过index记录当前遍历到的位置,保证其他字符串的顺序不变。最后输出结果即为将空字符串放到数组最后,其他字符串的顺序保持不变的字符串数组。
输出结果为:apple banana orange
### 回答3:
可以使用以下Java代码实现:
```
public class Main {
public static void main(String[] args) {
String[] strArray = {"abc", "", "def", "", "ghi"};
String[] newArray = new String[strArray.length];
int newIndex = 0;
for (String str : strArray) {
if (str.isEmpty()) {
continue;
}
newArray[newIndex] = str;
newIndex++;
}
while (newIndex < strArray.length) {
newArray[newIndex] = "";
newIndex++;
}
for (String str : newArray) {
System.out.println(str);
}
}
}
```
这段代码首先创建了一个与输入数组相同长度的新数组newArray,并定义了一个新的索引newIndex用于记录在新数组中的位置。
然后使用for-each循环遍历输入数组,对每个字符串进行判断。如果字符串是空的,则跳过该项;如果不为空,则将其复制到新数组的对应位置,并将新索引值加1。
接着使用while循环,将剩余的空字符串填充到新数组的末尾,直到新数组填满为止。
最后,通过for-each循环遍历新数组,并逐个打印出数组中的字符串内容。
阅读全文