scala - scala中的split命令不能正常使用特殊字符,如~
问题描述
嗨,我有这样的字符串:
var ma_test="~0.000000~~~"
我正在使用 ~ 作为分隔符的拆分功能,但它没有正确拆分
我尝试什么:
scala> var ma_test="~0.000000~~~"
scala> val split_val = ma_test.split("~")
split_val: Array[String] = Array("", 0.000000)
scala> val split_dis = split_val(2)
java.lang.ArrayIndexOutOfBoundsException: 2
... 32 省略
我也尝试使用 val split_val = ma_test.split("\~") 和 ma_test.split('~') 仍然无法正确拆分
解决方案
使用 split 将删除所有尾随的空字符串,因此拆分后有 2 个元素(因为前导 ~ 也会拆分),并且从索引 0、1 等开始。
请注意,您将获得 Array 中的第一个空条目,因为开头有一个 ~ 也会拆分,因此您应该使用索引 1。
var ma_test="~0.000000~~~"
val split_val = ma_test.split("~")
val split_dis = split_val(1)
输出
var ma_test: String = ~0.000000~~~
val split_val: Array[String] = Array("", 0.000000)
val split_dis: String = 0.000000
您可以传递 -1 作为第二个参数来查看所有部分,然后使用索引 2 将为您提供一个空字符串。
var ma_test="~0.000000~~~"
val split_val = ma_test.split("~", -1)
val split_dis = split_val(2)
输出
var ma_test: String = ~0.000000~~~
val split_val: Array[String] = Array("", 0.000000, "", "", "")
val split_dis: String = ""
推荐阅读
- visual-studio-code - 使用 Visual Studio Code 进行调试并将终端输出通过管道传输到文件
- java - 无法返回值
- python - 熊猫中几个数据帧的异步“read_csv” - 为什么它不更快
- node.js - 什么可能导致 localhost:4200 在路由调用之前添加?
- fortran - 了解 Fortran 如何初始化模块中定义的派生类型数组
- python - 如何在 Python 中进行调度作业以弹出列表中的元素?
- json - 如何使用抽象继承将 JSON 编码和解码为 TypeScript 模型?
- jasper-reports - 如何在 Jasper 报表中显示嵌套列表
- python - Keras Sequential 不提供输入形状
- error-handling - 本机 std::errc/errno 值和一些托管异常/错误代码之间的映射