我有一个字符串,并且通过HTML表单获取值,当我获取到这个值时,它会作为URL显示,因此我想要移除在特定字符
=
之前的所有字符以及这个字符本身。我只需要保留=
之后的值,因为我需要从变量中提取该值。
编辑:我需要移除=
,因为我正在尝试获取它后面的字符/值...您可以使用.substring()
:
String s = "the text=text";
String s1 = s.substring(s.indexOf("=") + 1);
s1.trim();
那么s1
包含原始字符串中=
后面的所有内容。
.trim()
会移除字符串开头(非空格字符,如字母、数字等)之前的所有空格(即前导空格),并且移除字符串结尾最后一个字符之后的所有空格(即尾随空格)。
=
,您可以使用 s.lastIndexOf("=")
获取最后一个出现的索引。 - Irina S.虽然有很多答案,这里提供一个正则表达式的示例
String test = "eo21jüdjüqw=realString";
test = test.replaceAll(".+=", "");
System.out.println(test);
// prints realString
说明:
.+
匹配除行终止符之外的任何字符
+
量词 —— 匹配一次或多次,尽可能多地匹配(贪婪匹配)
=
匹配等号字符 = (区分大小写)
这也是从https://regex101.com/复制粘贴而来的,你可以在该网站上尝试正则表达式。
test
是您的HTML字符串。 - Murat KaragözOp = 4 = 2 + 2
- AxelH我知道这个问题是关于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)
StringUtils
实用程序类的substringAfter
方法。请注意,此方法将返回输入字符串中指定子字符串之后的所有内容。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查询参数中,这种字符应该被转义。
String URL = "http://test.net/demo_form.asp?name1=stringTest";
int index = URL.indexOf("=");
String Result = URL.substring(index+1); //index+1 to skip =
字符串“Result”现在包含值:stringTest
split()
函数怎么样,只用第二个值呢? - XtremeBaumersplit(url,2)
,以防万一。 - AxelH