gpt4 book ai didi

java - 为什么这两种方法在单个打印语句中不能正常工作?

转载 作者:行者123 更新时间:2023-12-01 16:50:28 26 4
gpt4 key购买 nike

当我尝试使用两个内置方法 charAt()getNumericValue() 来获取字符串的字符及其数值时同一 println() 中的方法给了我一个不正确的结果,但是当我将它们放入单独的打印方法中时,它们工作正常。虽然我的示例有效,但我很好奇这是为什么?

这给出了正确的结果

            {
// dataStream is a String taken from the user. e.g. "Ninja"
// Take in dataStream, calculate the value of each character.
for ( int i = 0; i < dataStream.length() ; i++ )

{
System.out.print ( dataStream.charAt(i) ) ; // Print the Character at i,
System.out.print( Character.getNumericValue ( dataStream.charAt(i) ) ) ; // Print the value of the character at i.
System.out.println ( " ") ; // Tidy
}


}

这不是

            {

// dataStream is a String taken from the user. e.g. "Ninja"
// Take in dataStream, calculate the value of each character.
for ( int i = 0; i < dataStream.length() ; i++ )

{

System.out.print ( dataStream.charAt(i) + Character.getNumericValue ( dataStream.charAt(i) ) ) ;
System.out.println ( " ") ; // Tidy

}


}

最佳答案

因为 + 仅当其中一个元素是 String 并且您拥有的是 char 时才用作串联>int 值。

因此,它将 char 提升(转换)为 int,将两个数字相加,这就是它打印的内容。

你可以:

  • 将 char (Character.toString(char)) 和 int (Integer.toString(int)) 或其中之一转换为字符串.

  • 在中间添加一个字符串dataStream.charAt(i) + ""+ Character.getNumericValue(dataStream.charAt(i))。它将被分解为 (dataStream.charAt(i) + "") + Character.getNumericValue(dataStream.charAt(i))。第一部分将评估为字符串连接(因为“”),其余部分也将是字符串连接(因为第一部分的结果将是字符串)。另一个好处是,可以使用空格或符号来分隔两个值。

关于java - 为什么这两种方法在单个打印语句中不能正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41133177/

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