gpt4 book ai didi

Java 字符串连接到整数运算

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

我目前正在用java思考进行任何练习,你可以找出自午夜以来的秒数。

当在秒数的计算前面打印一个字符串时,它似乎正在使用该字符串进行进一步的计算。无论我如何排序,这两个结果都会给我不同的错误结果,就好像我删除了“自午夜以来的秒数:”字符串一样,它给了我正确的结果。我已添加括号以确保它遵循 PEMDAS,但我不明白该字符串如何使事情发生变化

    String hour, minute, second;
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
String theTime = sdf.format(cal.getTime()).toString();

hour = theTime.substring(0,2);
minute = theTime.substring(3,5);
second = theTime.substring(6,8);
int intHour = Integer.parseInt(hour);
int intMinute = Integer.parseInt(minute);
int intSecond = Integer.parseInt(second);

System.out.println("Seconds since midnight: " + (intHour * 3600) + (intMinute * 60) + intSecond);
System.out.println("Seconds since midnight: " + intSecond + (intMinute*60) + (intHour*3600));

最佳答案

在计算结果两边加上括号,运算顺序从左到右。

这将首先将字符串与整数连接起来,而不是计算正确的值。

System.out.println("Seconds since midnight: " + (intSecond + (intMinute*60) + (intHour*3600)));

这是一个简化的示例:

int value1 = 5, value2 = 10;

System.out.println("result " + value1 + value2);
System.out.println("result " + (value1 + value2));

输出

result 510
result 15

对到底发生了什么的一个小细节。

情况1:“结果” + value1 + value2

  • 字符串与整数连接 => 结果是字符串
  • 结果字符串与另一个整数连接

情况2:“结果” + (值1 + 值2)

  • 字符串与 HOOOOOLD IT 就在那里连接起来!检测到括号。
  • 执行括号=>结果是一个整数
  • 继续连接字符串和结果整数。

这个示例也可能很有洞察力:

public static void main(String[] args) {
System.out.println(valString() + (val1() + val2()));
}

static int val1() {
System.out.println("val 1");
return 5;
}

static int val2() {
System.out.println("val 2");
return 10;
}

static String valString() {
System.out.println("val string");
return "result ";
}

输出:

val string
val 1
val 2
result 15

关于Java 字符串连接到整数运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21735699/

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