0

我要做的是删除数组中某个位置的字符。该数组称为单词。

removecharacter 是一个 int

word 是一个由字符串组成的数组

已经编写了一个测试程序,人们可以在其中输入一个 int (removecharacter),这将给出数组中删除项目的位置

我认为我走在正确的轨道上,但不确定某一行,即实际的删除行。有小费吗?

public boolean delCharAt(int removecharacter) {
    if (removecharacter <= word.length && delete >= 0) 
    {

        //I wish to delete the character at removecharacter

    }

从这里去哪里有什么帮助吗?谢谢

4

4 回答 4

4

如果删除数组中的元素,则应考虑使用 (Array)List。您将有一种方法可以从列表中删除对象或索引处的元素。尽量避免重新发明轮子。

这是 Javadoc:http ://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html

另外,因为你的词来自一个字符串,你可以使用StringBuilder,你有一个名为deleteCharAt的方法。

于 2013-09-20T05:46:27.900 回答
1

如果您想要添加和删除的多功能性,您可以考虑使用 ArrayList 或 List 代替。它们都具有该任务的内置功能。

如果您绝对必须使用数组,您还必须为我使用的数组的长度存储一个值。

于 2013-09-20T05:46:34.143 回答
0

完成此任务的一种方法是在删除的值之后向下移动所有值。然后,您可以将新的空槽设置为 null。

if(removecharacter <= word.length && removecharacter >= 0)
{
    for(int i=removecharacter+1; i<word.length; i++) {
         word[i-1] = word[i];
         word[i] = '\u0000'; // This will make sure that no duplicates are created in this                     
                             // process.
    }
}
于 2013-09-20T05:48:02.040 回答
0

我和其他所有人都说要使用类似 an 的东西ArrayList,但是如果您别无选择,您可以使用System.arraycopy将内容从原始数组复制到一个新的临时数组并将结果分配回原始数组 ( word)。

这将减小数组的大小并删除字符...

public class ArrayDelete {

    // This is because I'm to lazy to build the character
    // array by hand myself...
    private static String text = "This is an example of text";
    private static char word[] = text.toCharArray();

    public static void main(String[] args) {
        System.out.println(new String(word));
        delete(9);
        System.out.println(new String(word));
    }

    public static void delete(int charAt) {
        if (word.length > 0 && charAt >= 0 && charAt < word.length) {
            char[] fix = new char[word.length - 1];

            System.arraycopy(word, 0, fix, 0, charAt);
            System.arraycopy(word, charAt + 1, fix, charAt, word.length - charAt - 1);

            word = fix;
        }
    }

}

此示例输出...

This is an example of text
This is a example of text
于 2013-09-20T05:57:41.963 回答