如何删除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中特定字符之前的所有字符?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Java 的组合框中删除特定项目?

如何在 R 中删除包含特定字符串的行?

如何在 PHP 中删除字符串末尾的所有特定字符?

如何删除所有出现的特定字符串一个字符串? [复制]

急!如何批量删除数据库中以特定字符开头和结尾的字符串

如何从包含特定列中特定字符串的熊猫数据框中删除行? [复制]