首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Java中使用分隔符拆分字符串而不删除分隔符?

如何在Java中使用分隔符拆分字符串而不删除分隔符?
EN

Stack Overflow用户
提问于 2010-12-11 19:12:29
回答 4查看 65.1K关注 0票数 80

我在拆分String时遇到了问题。

我想用一些分隔符拆分一个String,但不想丢失那个分隔符。

当我们在Java中使用somestring.split(String separator)方法时,它拆分了String,但从String中删除了分隔符部分。我不希望这事发生。

我想要如下结果:

代码语言:javascript
复制
String string1="Ram-sita-laxman";
String seperator="-";
string1.split(seperator);

输出:

代码语言:javascript
复制
[Ram, sita, laxman]

但我想要如下所示的结果:

代码语言:javascript
复制
[Ram, -sita, -laxman]

有没有办法得到这样的输出呢?

EN

回答 4

Stack Overflow用户

发布于 2010-12-11 19:18:40

这有点不靠谱,但是你可以使用一个替换函数来引入一个虚拟分隔符。我不知道Java方法,但在C#中可能是这样的:

代码语言:javascript
复制
string1.Replace("-", "#-").Split("#");

当然,您需要选择一个虚拟分隔符,该分隔符保证不会出现在字符串中的其他位置。

票数 4
EN

Stack Overflow用户

发布于 2010-12-11 19:16:37

一种方法是拆分字符串,然后在除第一个字符串之外的每个提取字符串的开头添加分隔符。

票数 2
EN

Stack Overflow用户

发布于 2013-02-21 02:03:38

亚当一针见血!我使用他的答案来解决如何将文件对话框浏览器中的文件名文本插入到富文本框中。我遇到的问题是当我在文件字符串中的"\“处添加新行时。string.split命令在\处拆分并将其删除。在混合使用Adam的代码之后,我能够在文件名中的每个\之后创建一个新的行。

下面是我使用的代码:

代码语言:javascript
复制
OpenFileDialog fd = new OpenFileDialog();
        fd.Multiselect = true;
        fd.ShowDialog();

        foreach (string filename in fd.FileNames)
        {
            string currentfiles = uxFiles.Text;
            string value = "\r\n" + filename;

     //This line allows the Regex command to split after each \ in the filename. 

            string[] lines = Regex.Split(value, @"(?<=\\)");

            foreach (string line in lines)
            {
                uxFiles.Text = uxFiles.Text + line + "\r\n";
            }
        }

享受吧!

Walrusking

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4416425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档