当前位置: 首页 > 面试题库 >

带+运算符的Java字符串串联

魏冷勋
2023-03-14
问题内容

我对String串联感到困惑。

String s1 = 20 + 30 + "abc" + (10 + 10);
String s2 = 20 + 30 + "abc" + 10 + 10;
System.out.println(s1);
System.out.println(s2);

输出为:

50abc20
50abc1010

我想知道为什么在两种情况下都将 20 + 30 加在一起,但是 10 + 10
需要加上括号(s1)而不是串联到String(s2)。请+在此处说明String运算符的工作方式。


问题答案:

加法保持关联。以第一种情况

20+30+"abc"+(10+10)
-----       -------
  50 +"abc"+  20    <--- here both operands are integers with the + operator, which is addition
  ---------
  "50abc"  +  20    <--- + operator on integer and string results in concatenation
    ------------
      "50abc20"     <--- + operator on integer and string results in concatenation

在第二种情况下:

20+30+"abc"+10+10
-----
  50 +"abc"+10+10  <--- here both operands are integers with the + operator, which is addition
  ---------
   "50abc"  +10+10  <--- + operator on integer and string results in concatenation
    ----------
    "50abc10"  +10  <--- + operator on integer and string results in concatenation
     ------------
      "50abc1010"   <--- + operator on integer and string results in concatenation


 类似资料:
  • 问题内容: 假设字符串a和b: 在幕后,他们是同一回事吗? 这里将concat反编译为参考。我也希望能够反编译该+运算符,以查看其作用。 问题答案: 不,不是。 首先,语义上略有不同。如果a是null,则抛出一个,但a+=b将把原来的值a就好像它是null。此外,该方法仅接受值,而+操作员会将参数无提示地转换为String(使用对象的方法)。因此,该concat()方法在接受方面更加严格。 要深入

  • 本文向大家介绍通过+(字符串串联)运算符进行字符串串联。,包括了通过+(字符串串联)运算符进行字符串串联。的使用技巧和注意事项,需要的朋友参考一下 您可以使用Java的“ +”运算符来连接字符串。 示例 输出结果

  • 目标 了解实例化 String 对象和设置其值的多种方法 了解字符串串联和方法链 熟悉 Java 语言的算术运算符 字符串 目前为止,您已经遇到过多种类型的 String。在 Java 语言中,字符串是 String 类型的一级对象,包含可帮助您处理它们的方法。 在 C 语言中,处理字符串需要大量精力,因为它们是您必须操作的 8 位字符组成的以 null 结尾的数组。(在字符串方面,与 C 语言最

  • 这章我们来着重介绍一下字符串。 刚刚学习Rust的同学可能会被Rust的字符串搞混掉,比如str,String, OsStr, CStr,CString等等…… 事实上,如果你不做FFI的话,常用的字符串类型就只有前两种。我们就来着重研究一下Rust的前两种字符串。 你要明白的是,Rust中的字符串实际上是被编码成UTF-8的一个字节数组。这么说比较拗口,简单来说,Rust字符串内部存储的是一个u

  • 我知道这个问题很简单。但我想知道布尔运算符的字符串格式。例如,下面显示了整数、字符串和浮点数的字符串格式。布尔运算符真/假可能是什么?

  • 现在的Rust资料,无论是Book还是RustByExample都没有统一而完全的介绍Rust的操作符。一个很重要的原因就是,Rust的操作符号和C++大部分都是一模一样的。 一元操作符 顾名思义,一元操作符是专门对一个Rust元素进行操纵的操作符,主要包括以下几个: -: 取负,专门用于数值类型。 *: 解引用。这是一个很有用的符号,和Deref(DerefMut)这个trait关联密切。 !: