当前位置: 首页 > 知识库问答 >
问题:

拆分包含连字符和减号的字符串

韩明德
2023-03-14

这个问题类似于我之前的问题拆分一个包含破折号和减号的字符串。但我问错了,然后它得到了稍微不同的语义,人们从这个角度回答(包括)。因此,与其修改这个问题,我认为最好是提出一个新问题。

我必须拆分一个包含连字符-减号和减号的字符串。我尝试根据Unicode字符(https://en.wikipedia.org/wiki/Hyphen#Unicode)进行拆分,但考虑到减号与连字符-减号相同。有什么方法可以解决它吗?

预期产出

(国家)

(美国)

-1个

实际输出量

(国家)

(美国)

//实际上,这里会打印空行,但编辑器会压缩空行

1.

public static void main(String[] args)  {
        char dash = '-';
        int i = -1;
       String a = "(country)" + dash + "(US)" + dash + i;
        Pattern p = Pattern.compile("-", Pattern.LITERAL);
        String[] m = p.split(a);
        for (String s : m) {
            System.out.println(s);
        }
    }

共有1个答案

李新霁
2023-03-14
char dash = '\u2010'; // 2010 is hyphen, 002D is hyphen-minus
int i = -1;
String a = "(country)" + dash + "(US)" + dash + i;
Pattern p = Pattern.compile("\u2010", Pattern.LITERAL);
String[] m = p.split(a);
for (String s : m) {
    System.out.println(s);
}

整数的字符串表示形式总是使用连字符减号作为负号:

来自整数。toString(字符串):

如果第一个参数为负数,则结果的第一个元素是ASCII减号“-”(“\u002D”)。如果第一个参数不是负数,则结果中不会出现符号字符。

所以最后你的字符串有3个连字符减去。这就是为什么拆分无法区分它们。

由于无法更改整数的字符串表示形式,因此需要更改dash变量以存储连字符而不是连字符减号。现在字符串中有2个连字符和1个连字符减号,使拆分能够区分它们。

 类似资料:
  • 我必须拆分一个包含破折号和减号的字符串。我试图根据unicode字符进行拆分(https://en.wikipedia.org/wiki/Hyphen#Unicode),仍然考虑减号与破折号字符相同。我如何解决它? 预期产出 (国家) (美国) -1个 实际输出量 (国家) (美国) //实际上,这里会打印空行,但编辑器会压缩空行 1. 我想在字符串连接期间会发生一些转换,但不确定。欢迎任何解决这

  • 问题内容: 如何将这个列表分为两个列表,一个包含字符串,另一个包含整数(以 雅致/ pythonic 方式)? 输出: 注意:没有实现这样的列表,只是想过如何找到一个很好的答案(有没有?)来解决这个问题。 问题答案: 正如其他人在评论中提到的那样,您应该真正开始思考如何摆脱最初包含非均匀数据的列表。但是,如果确实 不能 做到这一点,我将使用defaultdict:

  • 我想用空格和特殊字符(如果有的话)来分割字符串。例如:用于表示移动交换中心(信号强度)。 目前我正在使用正则表达式来拆分字符串,但我无法同时实现空格和特殊字符的拆分。 更新代码:

  • 现在假设用户enterd AAA-222 结果将是 ps.拆分的部分应该包括空格。

  • 问题内容: 我想用多个定界符分割一个字符串,但将定界符保留在结果列表中。我认为这是解析任何一种公式的初始步骤都是有用的,而且我怀疑有一个不错的Python解决方案。 有人在这里用Java问了类似的问题。 例如,典型的拆分如下所示: 但是我正在寻找一种添加加号(或保留它)的好方法: 最终,我想对每个运算符和括号进行此操作,因此,如果有一种方法 一劳永逸,那就更好了。 问题答案: 您可以使用Pytho

  • 因此,这将匹配以下逗号分隔的字符串: 然后,我可以使用对非字符执行相同的操作,它将匹配: 我想创建一个regex来匹配包含特殊字符、连字符和下划线的字符串,例如。 下面是另一个例子: 这是无效的,因为有两个逗号;必须只有一个。