如何将空格更改为下划线并使字符串不区分大小写?

Posted

技术标签:

【中文标题】如何将空格更改为下划线并使字符串不区分大小写?【英文标题】:How to change spaces to underscore and make string case insensitive? 【发布时间】:2012-03-16 16:57:48 【问题描述】:

我有以下问题。在我的应用程序中有一个列表视图。我从 listview 获取 itemname 并将其作为字符串传输到 webview。如何忽略此字符串的大小写并将空格更改为下划线?

例如:String itemname = "First Topic"。我将它转移到下一个活动并想忽略大小写并将空格更改为下划线(我想得到first_topic 结果)。 我在 webviewactivity 中得到“itemname”,并想做我为以下代码描述的内容:

String filename = bundle.getString("itemname") + ".html";

请帮忙。

【问题讨论】:

【参考方案1】:

像这样使用replaceAlltoLowerCase 方法:

myString = myString.replaceAll(" ", "_").toLowerCase()

【讨论】:

谢谢,但我没有结果。我在活动中使用它作为String itemname = bundle.getString("itemname"); itemname.replaceAll(" ", "_").toLowerCase(); 然后String filename = itemname + ".html"; 可能是不对的。请看一下。 你需要写成 itemname = itemname.replaceAll(" ", "_").toLowerCase(); @naini 回答...这些方法不会修改字符串,它们只是返回一个新的修改后的字符串,因此您应该分配新值。【参考方案2】:

这对我有用:

itemname = itemname.replaceAll("\\s+", "_").toLowerCase();

replaceAll("\\s+", "_") 用单个下划线替换连续的空格。

"first topic".replaceAll("\\s+", "_") -> first_topic

"first topic".replaceAll(" ", "_") -> first__topic

【讨论】:

我认为在大多数情况下,您的回答比接受的要好。【参考方案3】:

您可以使用 replaceAll 和 toLowerCase 方法,但请记住,它们不会更改字符串(它们只是返回修改后的字符串),因此您需要将 back 分配给变量,例如。

String itemname = bundle.getString("itemname"); 
itemname = itemname.replaceAll(" ", "_").toLowerCase(); 
String filename = itemname + ".html";

【讨论】:

Doh,在我输入时,问题作为对先前答案的评论得到了回答(我想我应该作为评论发布 - *** 的新手)

以上是关于如何将空格更改为下划线并使字符串不区分大小写?的主要内容,如果未能解决你的问题,请参考以下文章

matlab 的 M 文件的命名区不区分大小写的

oracle题库

如何删除具有区分大小写名称的重复目录?

CloudKit NSPredicate 不区分大小写

怎么设置正则表达式不区分大小写

不区分大小写的列表搜索