Scala-使用转义字符与分割字符

更新时间:2023-06-11 03:44:21 阅读: 评论:0

applicationsScala-使⽤转义字符与分割字符
⼀.引⾔
scala 使⽤ '|' 作为分割字符时,报红线并提⽰ scala empty branch in alternation,使⽤ \\ 转义字符修饰后实现 '|' 的正常 String Split。
⼆.使⽤分析
1.错误⽤法
val word = "112345|2"
A.错误1: 转义字符⽤反
println(word.split("/|").mkString(","))
1,1,2,3,4,5,|,2
翻译字符为 '\' ,使⽤ '/' 后不会正确划分字符串
B.错误2: 直接⽤特殊字符
println(word.split("|").mkString(","))
1,1,2,3,4,5,|,2
直接使⽤ '|' 会出现引⾔中的提⽰ scala empty branch in alternation,导致分隔符为空间隔,所以都划分了⼀遍
display2.正确⽤法
对于特殊字符分割,需要使⽤ \\| 双转义字符:
println(word.split("\\|").mkString(","))
112345,2
Tips:
public String[] split(String regex) {
return split(regex, 0);
}
这⾥解释⼀下为什么 | 会分割错误,split 函数的参数 String regex,其实这⾥就是⼀个正则表达式,| 在这⾥代表或的作⽤,例如你可以同时使⽤两个分隔符分割字符串,因此使⽤ | 符号时要注意⾃⼰是否需要增加转义字符 :
val word = "1<2>3"
println(word.split("<|>").mkString(","))chennai
1,2,3crossing>xiaoxia
三.其他需要 \\ 转义的字符
1.还有哪些字符需要转义
除了 ‘|’ 外, * ^ . + ? $ ... 也需要使⽤转义字符:
val word = "1*2^3:4.5|6"
println(word.split("^").mkString("-2022-"))
景点英文println(word.split(".").mkString("-2022-"))翻译器有道
println(word.split("|").mkString("-2022-"))
可以看到这些字符直接 split 后会有很多奇怪的结果,要么不 split,要么啥也没有,要么⼀个⼀个分割,所以遇到这些奇怪的字符⼀定记得加 \\ 转义 ,+ ? 会直接报错,⽆法 split ,$ 后⾯标识变量,直接 split 也要注意。
1*2^3:4.5|6
1-2022-*-2022-2-2022-^-2022-3-2022-:-2022-4-2022-.-2022-5-2022-|-2022-6
2.怎么识别转义字符
观察下⾯ split 语法,只要 regex 显⽰不和字符串⼀个颜⾊ (没⽤编辑器另说= =),那这个符号⼤概率需要转义或者不能满⾜你的 split 需求,例如 ^ | 是红⾊,因为他们此时是逻辑运算符号,. 是⿊⾊,都不是正常分割的字符。
purpoly加完 \\ 转义后,⼤家都正常了,NICE
val word = "1*2^3:4.5|6"
println(word.split("\\^").mkString("-2022-"))
println(word.split("\\.").mkString("-2022-"))
println(word.split("\\|").mkString("-2022-"))
1*2-2022-3:4.5|6
1*2^3:4-2022-5|6
空乘英文1*2^3:4.5-2022-6
3.scala 常见转义字符
4.其他特殊情况
除了 '|' 分割符号外,还有⼀个常⽤的分隔符是 ’^A' ,该符号是 Hive 的默认分割符号,但是⽂本格式下⽆法显⽰,如果要对 '^A' 分割的字符串分割,可以使⽤ string.split('\001')
>bdy

本文发布于:2023-06-11 03:44:21,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/141009.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:分割   字符   需要   转义字符   符号   转义
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图