Как предложено в этом проекте кода. Статья: https://www.codeproject.com/kb/threads/howtodeletecurrentprocess.aspx
вызывает cmd с аргументами, как показано ниже .
Process.Start("cmd.exe", "/C ping 1.1.1.1 -n 1 -w 3000 > Nul & Del " + Application.ExecutablePath);
Но в основном, как предложил @Sean, убедитесь, что вы не дождались выхода cmd.exe в свой скрипт.
Это строки нулевой длины, а не нуль. Но если вы хотите удалить их:
firstArray[0] refers to the first element
firstArray[1] refers to the second element
Вы можете переместить второе в первое таким образом:
firstArray[0] = firstArray[1]
Если вы должны были сделать это для элементов [1,2], затем [2,3] и т. д. вы в конечном итоге сдвинете все содержимое массива влево, исключив элемент 0. Можете ли вы увидеть, как это применимо?
Кажется, никто не упомянул об использовании метода nonNull
, который также можно использовать с streams
в Java 8 для удаления нуля (но не пустого) как:
String[] origArray = {"Apple", "", "Cat", "Dog", "", null};
String[] cleanedArray = Arrays.stream(firstArray).filter(Objects::nonNull).toArray(String[]::new);
System.out.println(Arrays.toString(origArray));
System.out.println(Arrays.toString(cleanedArray));
И вывод:
[Apple, Cat, Dog, NULL]
[Apple, Cat, Dog,]
Если мы хотим включить пустой также, то мы можем определить вспомогательный метод (в классе Utils
(скажем)):
public static boolean isEmpty(String string) {
return (string != null && string.isEmpty());
}
И затем использовать его для фильтрации элементов следующим образом:
Arrays.stream(firstArray).filter(Utils::isEmpty).toArray(String[]::new);
Я считаю, что Apache common также предоставляет служебный метод StringUtils.isNotEmpty
, который также можно использовать.