在达到java中的某些字符时拆分字符串

时间:2016-04-30 01:45:17

标签: java regex string split

这是我的输入字符串:

  

看 - 做链接(10)新鲜苹果(9)这是Apple(7)返回para(6,8)英尺(5)

我想将其拆分为以下部分:

Look -  to make links (10)
fresh apple (9)
This is Apple (7)
returns para (6,8)
in foot (5)

我尝试使用

进行拆分
string.split("(");

但没有工作。

我想要消除所有'()'从字符串,所以它只有数字。那么,如果它包含一个数字后跟一个空格,如何将它拆分并推送到一个新行?例如:

yy, 2009 Look -  to make links

然后,行"Look - to make links"必须在下一行,因为有一个数字后跟一个空格。

注意:我想从" 2009"开始阅读和操作字符串。 。即。线条"看 - 制作链接"必须是第一行。字符串是动态的。所以,我无法进行基于指数的计算 知道怎么做吗?

2 个答案:

答案 0 :(得分:1)

这很难说,但似乎这可能是你想要的:

Exit Do

这会在每个关闭括号后分开,保留关闭括号。正则表达式是一个后面的,其格式为For each ws in wb.Worksheets,用于(文字)近似括号。前瞻/后方是零宽度断言 - 所以他们不消耗任何输入;当你需要拆分但不丢失任何原始内容时必不可少。

答案 1 :(得分:0)

Anusha的正则表达式回答在输出的4/5前留下空格。您可以添加.trim()来删除它们!

这是另一种选择。这是一种“强力”字符串操作,从来都不是很漂亮。

    String str = "Look -  to make links (10) fresh apple (9)" +
            " This is Apple (7) returns para (6,8) in foot (5)";

    int startIndex = 0;
    int endIndex = str.indexOf(")")+1;
    while(endIndex < str.length())
    {
        System.out.println(str.substring(startIndex, endIndex)+"\n");
        startIndex = endIndex+1;
        endIndex = str.indexOf(")",startIndex)+1;
    }