【问题标题】:How to split the string with slash如何用斜杠分割字符串
【发布时间】:2014-10-20 14:35:44
【问题描述】:

如何使用正斜杠分割字符串?我试过以下代码:

I have string String x="10/20//30;expecting values 10,20,30.

When I tried to split using x.split("/"); then it only splitting 10,20,"",30
When I tried to split using x.split("//"); then it only splitting 10/20,30.

请帮助我正确拆分。如果有 2 个斜线,有什么方法可以跳过一个斜线?

问候, 壁画

【问题讨论】:

  • 你想用逗号替换斜线还是你想要整数的值?
  • 我想要拆分后的整数值:10,20,30
  • 一种解决方案是首先使用双斜杠分割它:x.split("//"):,然后使用一个斜杠分割每个结果:s[0].split("/");。最终的结果数组将是:10、20 和 30

标签: java


【解决方案1】:

你可以的

String[] array = x.split("/+");

【讨论】:

  • 我认为这行得通,你能告诉我它是如何工作的吗?
  • 这是一个正则表达式拆分,其中至少有一个斜杠,但可以更多。
  • 很简单——它使用+ 量词来匹配一个或多个/ 字符
  • 不应该是x = x.split("[/]+");,只有一个斜线吗?还是我误会了什么?
  • 是的,实际上这里不需要字符类:)
【解决方案2】:

因为我无法评论之前的答案:

我觉得应该是这样的

String[] s = x.split("/+");

因为否则就是从字符串数组到字符串的转换,不是吗?

【讨论】:

    【解决方案3】:

    尝试使用您的第一种方法并从结果中删除空值,例如使用此处描述的解决方案:Remove Null Value from String array in java

    【讨论】:

      【解决方案4】:

      当您使用 x.split("/") 时,它的拆分很好,问题是它在 // 斜杠所在的位置插入了一个空白,因为拆分的工作方式它将返回一个 [10, 20, , 30 ]。只需从数组中删除所有空白,或者在处理时跳过空白元素。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多