1

我有一个字符串

saya dan anda saya dan adik dan ayah,saya dan siapa?

在我的程序中,用户输入一个单词,然后程序只显示单词后面的字符串。例如我输入

安达

我想要的输出是

saya dan adik dan ayah,saya dan siapa?

我有这个代码

String kalimat = "saya dan anda saya dan adik dan ayah,saya  dan siapa?";
int kataSebelum = kalimat.indexOf("anda");
if (kataSebelum > 0){
kalimat = kalimat.substring(kataSebelum);
 System.out.println("Kalimat baru = " +kalimat);

但我得到了

anda saya dan adik dan ayah,saya dan siapa?

4

5 回答 5

2

kalimat.indexOf("anda");返回 的起始索引"anda"。将 的长度添加"anda"到该索引以获取匹配后开始的子字符串。

kalimat = kalimat.substring(kataSebelum + "anda".length());
于 2012-12-15T08:40:31.880 回答
0
public static void main(String[] args) {
        String str = "the quick brown fox jumps over the lazy dog";
        String remove = "quick";
        int length = remove.length();
        int idx = str.indexOf(remove);
        System.out.println("idx: " + idx);
        String output = str.substring(idx + length + 1); // add one more for the whitespace
        System.out.println(output);
}
于 2012-12-15T08:42:32.180 回答
0
   String kalimat = "saya dan anda saya dan adik dan ayah,saya  dan siapa?";
            int kataSebelum = kalimat.indexOf("anda");
            if (kataSebelum > 0){
            kalimat = kalimat.substring(kataSebelum+inputStr.length());
             System.out.println("Kalimat baru = " +kalimat);
        }
于 2012-12-15T08:43:57.130 回答
0

String.indexOf(String str)将返回与 str 匹配的第一个字符的位置。所以你需要做的就是用str的长度来抵消这个值。

String kalimat = "saya dan anda saya dan adik dan ayah, saya dan siapa?";
int kataSebelum = kalimat.indexOf("anda");
if(kataSebelum > 0) {
    kataSebelum += "anda".length();
    kalimat = kalimat.substring(kataSebelum);
    System.out.println("Kalimat baru = " + kalimat);
}
于 2012-12-15T08:44:43.917 回答
0

试试这个:

String kalimat = "saya dan anda saya dan adik dan ayah,saya  dan siapa?";
int kataSebelum = kalimat.indexOf("anda")+"anda".length;
if (kataSebelum >= "anda".length){
kalimat = kalimat.substring(kataSebelum);
System.out.println("Kalimat baru = " +kalimat);
于 2012-12-15T08:45:28.900 回答