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否,它会删除最后一个单词。@sameerasylastIndexOf(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]*$", "");