Java 正在尝试添加“;和猫”;就在“;狗”;但是“;s&x201D;从“;狗”;每次都漏掉了
我试图在Java 正在尝试添加“;和猫”;就在“;狗”;但是“;s&x201D;从“;狗”;每次都漏掉了,java,string,Java,String,我试图在“dogs”之后替换add“and cats”,但每次都只从“dogs”中删除“s”,似乎无法获得正确的输出 class Main { public static void main(String[] args) { String message = "I love dogs! I have a dog named Coco. My dog's very smart!"; int i = 0; while(message.i
“dogs”
之后替换add“and cats”
,但每次都只从“dogs”
中删除“s”
,似乎无法获得正确的输出
class Main {
public static void main(String[] args)
{
String message = "I love dogs! I have a dog named Coco. My dog's very smart!";
int i = 0;
while(message.indexOf("dogs") >= 0)
{
i = message.indexOf("dogs");
String sub1 = message.substring(0 , i + 3);
String sub2 = message.substring(i + 4);
message = sub1 + " and cats" + sub2;
}
System.out.println(message);
}
}
现在我的输出是“我爱狗和猫!我有一只名叫可可的狗。我的狗非常聪明!”。但是
“s”
不见了,我想不出如何修复它。你似乎把我要用的东西复杂化了:
String message=“我喜欢狗!我有一只狗叫Coco。我的狗非常聪明!”;
消息=消息。替换(“狗”、“狗和猫”);
System.out.println(消息);
这将返回:
I love dogs and cats! I have a dog named Coco. My dog's very smart!
代码的问题是第一个子字符串应该是:
String sub1 = message.substring(0 , i + 4);
包括最后的s。但是while将是无限的,因为字符串“dogs”仍然存在于消息
字符串中,您应该通过增加i
将while更改为仅在上一次查找之后进行检查,并从该索引上进行检查:
while(message.indexOf("dogs", i) >= 0)
{
i = message.indexOf("dogs");
String sub1 = message.substring(0 , i + 4);
String sub2 = message.substring(i + 5);
message = sub1 + " and cats" + sub2;
i++;
}
System.out.println(message);
哪些产出:
I love dogs and cats I have a dog named Coco. My dog's very smart!
你似乎把我想用的东西复杂化了:
String message=“我喜欢狗!我有一只狗叫Coco。我的狗非常聪明!”;
消息=消息。替换(“狗”、“狗和猫”);
System.out.println(消息);
这将返回:
I love dogs and cats! I have a dog named Coco. My dog's very smart!
代码的问题是第一个子字符串应该是:
String sub1 = message.substring(0 , i + 4);
包括最后的s。但是while将是无限的,因为字符串“dogs”仍然存在于消息
字符串中,您应该通过增加i
将while更改为仅在上一次查找之后进行检查,并从该索引上进行检查:
while(message.indexOf("dogs", i) >= 0)
{
i = message.indexOf("dogs");
String sub1 = message.substring(0 , i + 4);
String sub2 = message.substring(i + 5);
message = sub1 + " and cats" + sub2;
i++;
}
System.out.println(message);
哪些产出:
I love dogs and cats I have a dog named Coco. My dog's very smart!
我建议使用。子字符串中的上限是独占的,所以第一部分使用
I+4
,我建议使用。子字符串中的上限是独占的,所以第一部分也使用I+4