用阿里云建设网站,怎么设计网站内容,王烨飞微博,企业大型网站开发建站教程详解目录
如何快速获取字符串的UTF-8或UTF-16编码二进制数据?
数值转换成字符串itoa不是C标准#xff1f;
其它类型转换成字符串
其它类型转换成数值类型
转换成数值的API
为什么有的编程语言允许字符串和整数相加?
字符串拼接
字符串字面量自动连接 如何快速获取字符串… 目录
如何快速获取字符串的UTF-8或UTF-16编码二进制数据?
数值转换成字符串itoa不是C标准
其它类型转换成字符串
其它类型转换成数值类型
转换成数值的API
为什么有的编程语言允许字符串和整数相加?
字符串拼接
字符串字面量自动连接 如何快速获取字符串的UTF-8或UTF-16编码二进制数据? 在线字符编码转换网站Swift提供了非常简洁的编码二进制数据查看方法 let s a我a s.utf8.forEach { print($0, terminator: ) } // UTF-8: 97 230 136 145 97 s.utf16.forEach { print($0, terminator: ) } // UTF-16: 97 25105 97 数值转换成字符串itoa不是C标准 itoa确实不是C标准规定却是广泛被使用的非标准。建议使用标准库sprintf来实现itoa的功能。itoa不是标准可能有些难以理解事实上早期itoa存在多种不同风格参数字符串也并不是C语言的一等公民设计这个API反而产生更多负担和困扰。 其它类型转换成字符串 大部分编程语言将一个变量转换成字符串一般会经过toString方法或者类型转换方法形如C语言的itoa.
Swift提供一种极其优雅的方法可以用 \(VAR) 做转换。
var i 10
let str I have \(i) apples
print(str)
JS 基本类型 null -- null, undefined -- undefined 注意不是空字符串, 布尔类型分别是true和false, 字符串本身就返回自身Number类型转换成对应的字符串比如12 -- 12, 1.23 -- 1.23.引用类型先调用toString函数如果得到基本类型按上面规则转换字符串如果不满足继续调用valueOf函数如果还是基本类型再次重复上面的转换如果还不满足抛出异常。 仓颉 基本类型可调用toString()函数转换成字符串。C# 语言定义了基本类型ToString()方法自定义类可以重写ToString()方法。 VB Str(num) 函数可以将数值转换成字符串num可以是整数或浮点数不能是非数值字符。注意如果num是正数字符串会有前导空白字符。CStr(num) 函数基本和Str(num)一样除了它在num是正数时不会有前导空白字符。 其它类型转换成数值类型 很多静态类型编程语言不允许将非数值类型转换成数值类型一些脚本语言为了简化复杂度允许非数值类型按照特定规则转换成数值类型。
JS Undefined类型 -- NaN.Null类型 -- 0.Boolean类型 true -- 1, false -- 0. String类型根据是十进制还是十六进制或者浮点数转换成对应数值。注意这里没有八进制数值字符串012转换成数值是十进制的12而不是八进制的012. 如果是空字符串或者多个空格数值是0如果是除了如上的其他字符串即是非法数值转换结果是NaN.Object类型转换为数值经过2个步骤先调用valueOf()函数按照如上规则有合法数值即返回如果返回NaN, 继续调用toString()函数同样按照如上规则得到数值如果没有数值类型返回返回NaN. C# 基本类型提供隐式转换或者强制转换。字符串转换成基本类型 Type.Parse(String) 例如int.Parse(123)Type.TryParse(String, out Val) C# 2.0 ? 和Parse的区别是此函数转换失败不会抛出异常。 字符串转换成基本类型 System.Convert.ToXXX(String) 例如ToInt, ToFloat, ... VB Val(str) 将str转换成数值如果str包含不能转换为数值的字符转换就此终止返回已解析的数值。例如 Val(a12) 返回 0Val(-123ab) 返回 -123. 转换成数值的API
JS Number函数用于将任何类型转换成数值。 parseInt函数和parseFloat函数都可以将字符串转换为数值。要特别注意传入字符串和数值类型将导致结果不同数值类型的参数会先转换为字符串再参与转换。例如parseInt(0x10, 16)和parseInt(0x10, 16)结果分别是22和16. 为什么有的编程语言允许字符串和整数相加? C#/Java语言为了方便字符串拼接字符串和其他类型执行加法其它类型会隐式自动转换成字符串最后是拼接的结果。这极大方便了字符串操作但这并不是编程语言的通用设计。
Swift希望类型安全不允许字符串和数字相加必须都是字符串才可以相加。为减少因此设计带来的不便它又提供字符串插值方法可在字符串中插入其它类型变量会自动转换成字符串。 let a 4 let s number: \(a) 利用字符串里面的反斜杠\和括号()的组合即可插入变量a到字符串中。 字符串拼接 大部分更高级编程语言支持用做两个字符串拼接/连接例如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# 等语言不支持。 若文章对您有帮助欢迎关注 程序员小迷 。助您在编程路上越走越好
微风不燥阳光正好你就像风一样经过这里愿你停留的片刻温暖舒心。
我是 程序员小迷 致力于C、C、C#、Android、iOS、Java、Kotlin、Objective-C、Swift、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享若作品对您有帮助请关注、分享、点赞、收藏、在看、喜欢您的支持是我们为您提供帮助的最大动力。