Java 如果有第二个空格,请删除字符串中的所有内容

Java 如果有第二个空格,请删除字符串中的所有内容,java,string,Java,String,假设我有以下文字:雷霆一击I。我需要的是让它看起来像是雷鸣般的东西——删除字符串末尾的罗马数字 我尝试了trim()和一些substring()方法,但它们都不断返回:雷鸣般地把我打回来。也许它可以删除字符串中I之后的所有内容?也可以,但我似乎找不到修复它的方法。如果需要,请删除第二个空格后的所有字符 String s = "Thundering Blow I"; int k = s.indexOf(" ", s.indexOf(" ") + 1); String res = s.substri

假设我有以下文字:
雷霆一击I
。我需要的是让它看起来像是雷鸣般的东西——删除字符串末尾的罗马数字


我尝试了
trim()
和一些
substring()
方法,但它们都不断返回:
雷鸣般地把我打回来。也许它可以删除字符串中
I
之后的所有内容?也可以,但我似乎找不到修复它的方法。

如果需要,请删除第二个空格后的所有字符

String s = "Thundering Blow I";
int k = s.indexOf(" ", s.indexOf(" ") + 1);
String res = s.substring(0,k);
System.out.println(res);
这是全部代码:

String s = "ThunderingI";
s = s.trim();
int ind = s.lastIndexOf(" ");
if (ind > 0) {
    s = s.substring(0, ind).trim();
}
System.out.println(s);

您可以拆分该字符串,然后将索引为0和1的新字符串连接起来。 最简单的解决方案:)

你可以试试这个

        String a = "Thundering Blow I";
        String[] b = a.split(" ");
        System.out.println(b[0]+" "+b[1]);

这将删除字符串末尾的单个罗马数字(如果存在):

String input = "Thundering Blow returning MMXVI";
input = input.replaceAll("\\s[CDILMVX]*$", "");

MMXVI
是用罗马数字表示的2016,以防您感到疑惑。

那么,您尝试的代码在哪里?(使用substring.trim删除空白,而“I”不是空白)请向我们展示几个示例,包括正片和负片。您需要更具体一些。我很确定你想要的不是在第二个空格后删除任何内容,而是删除最后一个位置的罗马数字(如果有的话)。雷霆一击返回IV如何?@DanielHoller那么你为什么不接受答案。这对一个超过3个单词的短语有效吗?“如果罗马数字不见了呢?”TimBiegeleisen说,他从来没有问过这个问题。那么这个操作就是误导。最后一个单词是罗马数字有什么关系?@TimBiegeleisen它删除第二个空格后的所有字符。不管是罗马人还是其他角色。这是他所要求的很好的努力,但只有当字符串中有2个空格时,才会删除所有字符。如果字符串有更多的空格怎么办?@sameerasy否,它会删除最后一个单词。@sameerasy
lastIndexOf(string)
返回字符串的最后一个索引或-1
        String a = "Thundering Blow I";
        String[] b = a.split(" ");
        System.out.println(b[0]+" "+b[1]);
String input = "Thundering Blow returning MMXVI";
input = input.replaceAll("\\s[CDILMVX]*$", "");