大部分更高级编程语言支持用+做两个字符串拼接/连接,例如Java/C#/Python/JS/Ruby/Swift/Kotlin/Go.
- C/ObjC/C++把字符串当做数值类型的指针,不允许两个指针相加。
- 但如果是字符串和整数相加,等同于指针加法。
- 例如”hello” + 1是字符串”ello”.
- 但如果是字符串和整数相加,等同于指针加法。
- Java/C#均支持字符串相加,包括字符串 + <其他类型>(其他类型自动转换成字符串)。
- Python支持两个字符串相加,也支持复合赋值运算符+=做字符串拼接,但不允许字符串和整数相加。
- PHP和Perl利用.和.=实现字符串拼接,不能使用+连接字符串。
- Rust有所有权机制,字符串拼接需做转换。
let s1 = "Hello, ".to_string();
let s2 = "world!".to_string();
let s3 = s1 + &s2; - 仓颉 支持两个字符串相加,但不允许字符串和其他类型相加。如需要,其他类型必须调用toString转换成字符串。另外,也支持复合赋值 += 作用于字符串。
- VB 有两种运算符方式拼接字符串。
- & 拼接字符串或非字符串,注意,& 同时也是长整型类型符,当做字符串拼接需要和运算数有空格。
- + 运算符:如两个运算数都是数值,表示数值相加;一个是数值另一个是数值字符串,一样是数值加法;两个都是字符串,做字符串拼接;其他情况,报错。
- Python 也支持两个字符串相加。
字符串字面量自动连接
- C/ObjC/C++ 支持多个字符串字面量自动连接,例如:
"hello " "world"代表"hello world".- C# 等语言不支持。