我tmp = [null, null, null, Mars, Saturn, Mars]在执行操作后会跟随String Array
-
allSig[d3].split(" ");其中allSig是一个字符串数组.null值是数组中的空值.现在我想删除null.为此,我正在使用
tmp[indexNumber] != null是不工作和给予真实; 取null作为值.即使我使用"null"作为字符串不起作用.
如何删除它.
public static String[] removeElements(String[] allElements) {
String[] _localAllElements = new String[allElements.length];
for (int i = 0; i < allElements.length; i++)
if (allElements[i] != null)
_localAllElements[i] = allElements[i];
return _localAllElements;
}
Run Code Online (Sandbox Code Playgroud)
AZ_*_*AZ_ 37
最简单的解决方案
public static String[] clean(final String[] v) {
List<String> list = new ArrayList<String>(Arrays.asList(v));
list.removeAll(Collections.singleton(null));
return list.toArray(new String[list.size()]);
}
Run Code Online (Sandbox Code Playgroud)
public static String[] clean(final String[] v) {
int r, w;
final int n = r = w = v.length;
while (r > 0) {
final String s = v[--r];
if (!s.equals("null")) {
v[--w] = s;
}
}
return Arrays.copyOfRange(v, w, n);
}
Run Code Online (Sandbox Code Playgroud)
或者
public static String[] clean(final String[] v) {
int r, w, n = r = w = v.length;
while (r > 0) {
final String s = v[--r];
if (!s.equals("null")) {
v[--w] = s;
}
}
final String[] c = new String[n -= w];
System.arraycopy(v, w, c, 0, n);
return c;
}
Run Code Online (Sandbox Code Playgroud)
工作正常...
public static void main(final String[] argv) {
final String[] source = new String[] { "Mars", "null", "Saturn", "null", "Mars" };
assert Arrays.equals(clean(source), new String[] { "Mars", "Saturn", "Mars" });
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
41720 次 |
| 最近记录: |