gpt4 book ai didi

java - 字符串与字符的串联在 Java 中如何工作?

转载 作者:行者123 更新时间:2023-11-29 09:41:02 24 4
gpt4 key购买 nike

下面是codingbat的一个问题。

Given a string, return a string where for every char in the original, there are two chars. e.g.:

doubleChar("The") → "TThhee"
doubleChar("AAbb") → "AAAAbbbb"
doubleChar("Hi-There") → "HHii--TThheerree"

我有两个语句可以做到这一点,但评论中的语句没有给出异常(exception)的输出:

public String doubleChar(String str) {
String str1 = "";
for(int i=0;i<str.length();i++)
{
//str1 += str.charAt(i) + str.charAt(i);
str1 += str.substring(i,i+1)+str.substring(i,i+1);
}
return str1;
}

如果我将注释部分更改为 str1 = str1 + str.charAt(i) + str.charAt(i),则输出符合要求。我无法理解这一点。如果串联没有,那么它不应该适用于任何一种情况。你能帮我吗?

最佳答案

str.charAt(i) 返回一个 char,将两个 char 添加到一个 char 中一个代码点等于输入代码点的总和。当您从 str + 开始时,第一个连接是在 Stringchar 之间,结果是 String,接着是第二个连接,也是在 Stringchar 之间。

您可以通过几种方式解决此问题,例如:

str1 += String.valueOf(str.charAt(i)) + str.charAt(i);

str1 += "" + str.charAt(i) + str.charAt(i);

或者,正如您已经发现的,并且可能是最具可读性的:<​​/p>

str1 = str1 + str.charAt(i) + str.charAt(i);

关于java - 字符串与字符的串联在 Java 中如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20938726/

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