gpt4 book ai didi

java - char + String 给出奇怪的结果

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:09:17 26 4
gpt4 key购买 nike

问题:
给定一个字符串,取前 2 个字符并返回在前后添加 2 个字符的字符串,因此“kitten”产生“kikittenki”。如果字符串长度小于 2,则使用其中的任何字符。

    front22("kitten") → "kikittenki"
front22("Ha") → "HaHaHa"
front22("abc") → "ababcab"

我的回答:

public String front22(String str) {
if(str.length() > 2) {
char first = str.charAt(0);
char second = str.charAt(1);
return first + second + str + first + second;
}
return str + str + str;
}

Results:
Expected Run results
front22("kitten") → "kikittenki" "212kittenki" X
front22("Ha") → "HaHaHa" "HaHaHa" OK
front22("abc") → "ababcab" "195abcab" X
front22("ab") → "ababab" "ababab" OK
front22("a") → "aaa" "aaa" OK
front22("") → "" "" OK
front22("Logic") → "LoLogicLo" "187LogicLo" X

那么输出前面的数字(即 212、195 和 187)来自哪里?我是 JAVA 的新手。抱歉,如果这是我不知道的非常简单或基本的事情。我知道我可以通过以下方式完成,但只想知道我的第一个答案是怎么回事。

public String front22(String str) {
if(str.length() > 2){
return str.substring(0,2) + str + str.substring(0,2);
}

return str + str + str;
}

最佳答案

这是字符的 ascii 总和:
对于第一种情况,i 有 ascii 105k 有 ascii 107 所以它们的总和是 212
尝试使用 str.subString(0, 2) 而不是添加 char 变量。

关于java - char + String 给出奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28549976/

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