Java中字符串字符的结尾 - java

我正在解决一个简单的问题:

在Java中删除字符数组中的某些字符,想法很简单:

static void remove_char(char[] arr, char c){
    int r = 0;
    for (int i = 0 ; i < arr.length ; i++){
        if (arr[i] == c){
            r++;
            continue;
        }
        arr[i - r] = arr[i];
    }
    arr[arr.length - r] = '\0'; // ??
    return;
}

我想放置一个ending character,该信号表示在我们想要例如使用new String(arr)生成字符串时不必考虑数组的其余部分

Java中有这样的字符吗? (我猜在C中是\0,但我不确定)

例如,当我们调用:

System.out.println(new String(remove_char(new char[] {'s','a','l','a','m'} , 'a')))

这将被打印:slm m

虽然我想获取slm并且我想执行此in-place而不使用新数组

参考方案

Java不会像C那样“标记”字符串的结尾。它跟踪长度和值,因此字符串中可以包含零个字符(\0)。如果从包含String个字符的char数组中创建一个\0,则结果String将包含这些字符。

还要注意,数组的大小是静态的-无法调整大小,因此您必须自己跟踪“大小”(String构造函数不会从char数组的末尾为您删除不需要的字符)。

考虑使用以下任一方法:

Clyde Byrd III建议的StringBuilder,或
String(char value[], int offset, int count);您必须以编程方式确定offsetcount的适当值。字符串方法(例如replaceconcatsubstring)可能会有所帮助。

Java-如何将此字符串转换为日期? - java

我从服务器收到此消息,我不明白T和Z的含义,2012-08-24T09:59:59Z将此字符串转换为Date对象的正确SimpleDateFormat模式是什么? java大神给出的解决方案 这是ISO 8601标准。您可以使用SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM…

Java-固定大小的列表与指定初始容量的列表之间的差异 - java

我在理解这一点上遇到了问题。当我们做 List<Integer> list = Arrays.asList(array); 我们不能在该列表上使用添加,删除之类的方法。我知道Arrays.asList()返回固定大小的列表。我不明白的是,如果我们创建一个具有指定初始容量的列表,例如List<Integer> list2 = new A…

Java:线程池如何将线程映射到可运行对象 - java

试图绕过Java并发问题,并且很难理解线程池,线程以及它们正在执行的可运行“任务”之间的关系。如果我创建一个有10个线程的线程池,那么我是否必须将相同的任务传递给池中的每个线程,或者池化的线程实际上只是与任务无关的“工人无人机”可用于执行任何任务?无论哪种方式,Executor / ExecutorService如何将正确的任务分配给正确的线程? 参考方案 …

Java-搜索字符串数组中的字符串 - java

在Java中,我们是否有任何方法可以发现特定字符串是字符串数组的一部分。我可以避免出现一个循环。例如String [] array = {"AA","BB","CC" }; string x = "BB" 我想要一个if (some condition to tell wheth…

从方法返回数组-Java - java

private static Coordinate[] getCircleCoordintaes() { Coordinate coordinates[] = {new Coordinate(0, 0)}; return coordinates; } 以上程序工作正常。在上面的程序中,返回的坐标数组首先初始化了数组使用这条线Coordinate coordi…