如何在X字符之前返回所有内容?

时间:2015-11-15 05:35:04

标签: java string

假设用户输入了一个字符串,例如"My name is Oz, the great and powerful"。我已使用子字符串切断"My name is",但我想切断", the great and powerful"并仅保留Oz

有没有这样做的方法?

请记住,用户输入的字符串对我们来说是未知的。

1 个答案:

答案 0 :(得分:0)

您可以使用Regex,您必须确定它将匹配的模式,这在您的情况下很容易,因为名称前的字符串已修复"我的名字是&#34 ; 并且名称后面有一个逗号,因此模式将为(My name is )(.*)(,)(.*),并使用以下代码生成输出:

// String to be scanned to find the pattern.
String line = "My name is Oz, the great and powerful";
String pattern = "(My name is )(.*)(,)(.*)";

// Create a Pattern object
Pattern r = Pattern.compile(pattern);

// Now create matcher object.
Matcher m = r.matcher(line);
if (m.find( )) {
   String name = m.group(2);
}

如果没有逗号,那么模式必须是:

String pattern = "(My name is )([A-Z]*[a-z]*)(\\s)(.*)";

您可以查看here,这是一个很棒的教程。