Java 检索特定字符后的子字符串

Java 检索特定字符后的子字符串,java,kotlin,Java,Kotlin,我需要获取字符串中-字符后的文本 例如, 我有一条短信,说“John Doe的名字”。 我想得到文本“约翰·多伊” 最好的方法是什么?在Java中,可以使用String.indexOf(Char)方法查找分隔符的索引,然后在String.substring(Int)方法中使用它来获取所需的子字符串。像这样: String getRequiredText(String text) { int delimiterIndex = text.indexOf('-'); return te

我需要获取字符串中
-
字符后的文本

例如,
我有一条短信,说“John Doe的名字”。
我想得到文本“约翰·多伊”


最好的方法是什么?

在Java中,可以使用
String.indexOf(Char)
方法查找分隔符的索引,然后在
String.substring(Int)
方法中使用它来获取所需的子字符串。像这样:

String getRequiredText(String text) {
    int delimiterIndex = text.indexOf('-');
    return text.substring(delimiterIndex + 1);
}
在Kotlin中,可以使用
String.substringAfter(Char)
扩展函数。像这样:

String getRequiredText(String text) {
    int delimiterIndex = text.indexOf('-');
    return text.substring(delimiterIndex + 1);
}
fun getRequiredText(text:String)=text.substringAfter('-'))

fun String.getRequiredText()=子字符串('-')之后

首先您需要编写一些代码我已经更新了问题@Reimeus
replace(“.*-”,”)
不起作用,因为
replace()
是一个简单的文本替换。要使用正则表达式,您需要调用
replaceAll()
replaceFirst()
,这很好,例如
“blah blah-stack overflow”。replaceFirst(“.-”,”)
返回
“stack overflow”
(注意前面的空格)。@Andreas在我提出问题之前,我做了研究,找到了replaceAll,但是我不知道它是否在kotlin上,我不能用它,我不知道为什么。这就是我问这个问题的原因;然后忽略第一个元素,并在空格上拆分以获得字符串[1]的单词。谢谢,伙计,这正是我想要的