首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用String split Java重建字符串

使用String split Java重建字符串
EN

Stack Overflow用户
提问于 2012-05-24 11:10:22
回答 2查看 498关注 0票数 0

我正在写一个程序,将采取乐谱(和弦以上的歌词)和转置的关键。我选择拆分一个歌曲字符串,操作和弦名称,并建立一个新的字符串。我的方法是将歌曲拆分成几行,然后根据空格String[] oneLine = s.split("\\s");拆分每一行

在构建新字符串时,保持原始间距绝对是至关重要的。我的问题是,通过在//s上拆分,我丢失了所有的空格历史。有人能为我的问题提供解决方案吗?

下面是一首示例歌曲

代码语言:javascript
复制
String song = "G   Em  C   D\nSome Lyrics Go Here\nG   C   D\nOther Lyrics Go Here";

目前,我的转置歌曲看起来像这样。

代码语言:javascript
复制
AF#mDE
Some Lyrics Go Here
ADE
Other Lyrics Go Here
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-24 11:15:44

如果使用StringTokenizer拆分字符串,则可以将其配置为保留并返回分隔符。这样,您就可以保持空格的数量。

请参见StringTokenizer(String,String,boolean)构造函数。

公共StringTokenizer(String str,String delim,boolean returnDelims)

为指定字符串构造字符串标记器。delim参数中的所有字符都是分隔标记的分隔符。

如果returnDelims标志为true,则分隔符字符也将作为标记返回。每个分隔符都作为长度为1的字符串返回。如果该标志为false,则跳过分隔符字符,并且仅用作标记之间的分隔符。

请注意,如果delim为null,则此构造函数不会引发异常。但是,尝试在生成的StringTokenizer上调用其他方法可能会导致NullPointerException。

参数:

str -要解析的字符串。

delim -分隔符。

returnDelims -指示是否将分隔符作为标记返回的标志。

票数 1
EN

Stack Overflow用户

发布于 2012-05-24 11:13:13

正如您已经注意到的,不要使用String.split(),因为它将丢弃您的空格,您需要使用一些其他技术。您可以简单地在循环中一次一个字符地处理每一行,在处理每个字符时将其附加到一个StringBuilder,这样最终得到的字符总数是相同的。

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

https://stackoverflow.com/questions/10730632

复制
相关文章

相似问题

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