如何将空格更改为下划线并使字符串不区分大小写?
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】:像这样使用replaceAll
和toLowerCase
方法:
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,在我输入时,问题作为对先前答案的评论得到了回答(我想我应该作为评论发布 - *** 的新手)以上是关于如何将空格更改为下划线并使字符串不区分大小写?的主要内容,如果未能解决你的问题,请参考以下文章