-4

我有以下 Java 字符串:

“你好,我的名字是詹姆斯。另见 > 我的名字是丹”。

我想检测我的字符串是否包含“另见”,如果是这种情况,我只想在“另见”之后检索没有文本的字符串的开头。

我想要“你好,我的名字是詹姆斯。”。

我怎样才能使用 Java 做到这一点?

4

4 回答 4

1

String 有indexOf(String)可以让你找到“See also >”,和substring(int, int)可以通过计算索引来提取第一部分和最后一部分。

于 2013-11-01T15:52:32.183 回答
1

为了拯救家庭作业...

请注意,我还会在最后一行附加一个 .trim() ,但这是您的选择。

public String trimSeeAlso(String string) {
    int index = string.indexOf("See also >");
    if (index < 0) return string;

    return string.substring(0, index);
}
于 2013-11-01T15:53:38.843 回答
0

考虑使用正则表达式:

    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 | 
于 2013-11-01T15:54:51.163 回答
0

我这样做的方法是使用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.

于 2013-11-01T15:57:03.790 回答