我有以下 Java 字符串:
“你好,我的名字是詹姆斯。另见 > 我的名字是丹”。
我想检测我的字符串是否包含“另见”,如果是这种情况,我只想在“另见”之后检索没有文本的字符串的开头。
我想要“你好,我的名字是詹姆斯。”。
我怎样才能使用 Java 做到这一点?
我有以下 Java 字符串:
“你好,我的名字是詹姆斯。另见 > 我的名字是丹”。
我想检测我的字符串是否包含“另见”,如果是这种情况,我只想在“另见”之后检索没有文本的字符串的开头。
我想要“你好,我的名字是詹姆斯。”。
我怎样才能使用 Java 做到这一点?
String 有indexOf(String)可以让你找到“See also >”,和substring(int, int)可以通过计算索引来提取第一部分和最后一部分。
为了拯救家庭作业...
请注意,我还会在最后一行附加一个 .trim() ,但这是您的选择。
public String trimSeeAlso(String string) {
int index = string.indexOf("See also >");
if (index < 0) return string;
return string.substring(0, index);
}
考虑使用正则表达式:
public static void main(String... strings) {
String string = "Hello, my name is james. See also > My name is Dan";
String string2 = "Hello, my name is james. My name is Dan";
String res[] = string.split("See also >");
System.out.println(res[0]);
res = string2.split("See also >");
System.out.println(res[0]);
}
输出
Hello, my name is james.
Hello, my name is james. My name is Dan
这也允许您获取由“另见>”分隔的字符串的所有部分:
String string3 = "Hello, my name is james. See also > My name is Dan See also > My name is Dan";
res = string3.split("See also >");
for (String str: res)
System.out.print(str + " | ");
输出:
Hello, my name is james. | My name is Dan | My name is Dan |
我这样做的方法是使用String
'split(String regex)
函数。
split(String regex)
返回 a String[]
,因此您需要访问数组String
中的第一个且仅第一个String
String newString = oldString.split("See also >")[0].trim;
上面的代码采用旧的String
:
"Hello, my name is james. See also > My name is Dan"
把它分成几块:
{"Hello, my name is james. ", " My name is Dan"}
取String
数组中的第一个:
"Hello, my name is james. "
trims
它的额外空间:
"Hello, my name is james."
并将该值分配给新的String
.