如何删除Java中特定字符之前的所有字符?
Posted
技术标签:
【中文标题】如何删除Java中特定字符之前的所有字符?【英文标题】:How to remove all characters before a specific character in Java? 【发布时间】:2017-04-16 02:23:01 【问题描述】:我有一个字符串,我通过一个 html 表单获取值,所以当我得到它来自 URL 的值时,我想删除特定字符之前的所有字符,即 =
,我也想删除这个字符。我只想保存=
之后的值,因为我需要从变量中获取该值..
编辑:我也需要删除=
,因为我试图在它之后获取字符串中的字符/值...
【问题讨论】:
@ItamarGreen 我不知道该怎么做,因为我是初学者,所以我在互联网上搜索了它,我没有找到任何我能理解的东西,所以如果你知道帮助请我明白了 你在 google 上搜索过你的头衔吗?split()
怎么办,只使用第二个值?
@ItamarGreen 是的,但解释很差
你真正想要的是解析查询参数。看到这个问题:***.com/questions/13592236/…
【参考方案1】:
你可以使用.substring()
:
String s = "the text=text";
String s1 = s.substring(s.indexOf("=")+1);
s1.trim();
那么s1
包含原始字符串中=
之后的所有内容。
s1.trim()
.trim()
删除字符串的第一个字符(不是空格,如字母、数字等)之前的空格(前导空格),并删除最后一个字符之后的空格(尾随空格)。
【讨论】:
【参考方案2】:虽然有很多答案。这是一个正则表达式示例
String test = "eo21jüdjüqw=realString";
test = test.replaceAll(".+=", "");
System.out.println(test);
// prints realString
解释:
.+
匹配任何字符(行终止符除外)+
量词 - 匹配一次到无限次,尽可能多次,根据需要返回(贪婪)=
匹配字符 = 字面意思(区分大小写)
这也是来自https://regex101.com/ 的阴暗复制粘贴,您可以在其中尝试正则表达式。
【讨论】:
@ShariqMusharaf 这是我随机选择的。变量test
是您的 html 字符串。【参考方案3】:
您可以将字符串从 = 拆分并分离到数组中,并获取您在 = 符号之后指定的数组的第二个值 例如:
String CurrentString = "Fruit = they taste good";
String[] separated = CurrentString.split("=");
separated[0]; // this will contain "Fruit"
separated[1]; //this will contain "they teste good"
then separator[1] 包含原始字符串中 = 之后的所有内容。
【讨论】:
我也需要删除“=” 是的,它会删除“=”并将其存储在您完全想要的分隔[1]中。 不是一切!试试这个Op = 4 = 2 + 2
【参考方案4】:
也许可以在 URL 字符串中找到第一次出现的字符。例如:
String URL = "http://test.net/demo_form.asp?name1=stringTest";
int index = URL.indexOf("=");
然后,根据索引拆分字符串
String Result = URL.substring(index+1); //index+1 to skip =
字符串结果现在包含值:stringTest
【讨论】:
@sha 如果您不想包含“=”,只需将索引增加 1。【参考方案5】:我知道这是关于Java
的问题,但这似乎也是Kotlin
的第一个搜索结果,因此您应该知道Kotlin
在这种情况下具有String.substringAfter(delimiter: String, missingDelimiterValue: String = this)
扩展名。
它的实现是:
val index = indexOf(delimiter)
return if (index == -1)
missingDelimiterValue
else
substring(index + delimiter.length, length)
【讨论】:
【参考方案6】:如果您使用Apache Commons Lang3 库,还可以使用StringUtils
实用程序类的substringAfter
方法。
官方文档是here。
例子:
String value = StringUtils.substringAfter("key=value", "=");
// in this case where a space is in the value (e.g. read from a file instead of a query params)
String value = StringUtils.trimToEmpty(StringUtils.substringAfter("key = value", "=")); // = "value"
它管理您的值在第一次出现时可以包含“=”字符的情况。
如果您的键和值也包含“=”字符,它将不起作用(但其他方法也是如此);在 URL 查询参数中,无论如何都应该转义这样的字符。
【讨论】:
以上是关于如何删除Java中特定字符之前的所有字符?的主要内容,如果未能解决你的问题,请参考以下文章