gpt4 book ai didi

java - Java中字符串结束符

转载 作者:行者123 更新时间:2023-12-02 13:00:27 27 4
gpt4 key购买 nike

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

在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;
}

我想放置一个结束字符,它表明当我们想要使用new String( 生成字符串时,不必考虑数组的其余部分arr)

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

例如,当我们调用:

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

这将被打印:slm m

虽然我想要获得slm并且我想就地而不使用新数组来执行此操作

最佳答案

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

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

考虑使用:

  • Clyde Byrd III 建议的 StringBuilder,或

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

关于java - Java中字符串结束符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17815755/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com