【发布时间】:2012-03-08 13:52:47
【问题描述】:
我有一个 200 元素长的 char 数组,我在循环中加载带有新字符的向量,并且 在每个循环中,元素编号都可能与前一个不同,那么如何清空数组中不需要的位置? 注意:元素大小必须为 200,我无法解决使用 new 创建对象的新实例的问题。
谢谢
【问题讨论】:
我有一个 200 元素长的 char 数组,我在循环中加载带有新字符的向量,并且 在每个循环中,元素编号都可能与前一个不同,那么如何清空数组中不需要的位置? 注意:元素大小必须为 200,我无法解决使用 new 创建对象的新实例的问题。
谢谢
【问题讨论】:
你的意思是这样的:
Arrays.fill(array, index, array.length, '\0');
?当然,这只会用 U+0000 值覆盖数组的其余部分……不存在 char[] 元素为“空”之类的东西。数组中的每个元素总是有一个char; U+0000 是一种表示“不要将其视为真实数据”的方式。
【讨论】:
如果您尝试删除字符,我会使用 StringBuilder。这比使用 Vector 更有效。
char[] chars = new char[50];
Arrays.fill(chars, '-');
StringBuilder sb = new StringBuilder();
sb.append(chars);
// remove characters 10 to 15.
sb.delete(10, 15);
// remove a character
sb.deleteCharAt(24);
// replace some characters
sb.replace(30, 40, "Hello World");
System.out.println(sb);
打印
------------------------------Hello World----
【讨论】: