在Java中,我想摆脱字符串中的前导和尾部括号。
给定的输入:删除字符串中的前导和尾部括号
"[ hello, char[]={a,b,c} ... bye ]"
我怎么可能产生的
" hello, char[]={a,b,c} ... bye "
输出仅领先[
和尾随]
被删除...我怎么能做到这一点在Java中?
在Java中,我想摆脱字符串中的前导和尾部括号。
给定的输入:删除字符串中的前导和尾部括号
"[ hello, char[]={a,b,c} ... bye ]"
我怎么可能产生的
" hello, char[]={a,b,c} ... bye "
输出仅领先[
和尾随]
被删除...我怎么能做到这一点在Java中?
String i = "[ hello, char[]={a,b,c} ... bye ]";
int indexOfOpenBracket = i.indexOf("[");
int indexOfLastBracket = i.lastIndexOf("]");
System.out.println(i.substring(indexOfOpenBracket+1, indexOfLastBracket));
打印:
hello, char[]={a,b,c} ... bye
String a = "[ hello, char[]={a,b,c} ... bye ] ";
a.substring(1,23);
System.out.println(a);
你在那里我想念读。
看看在String.substring()方法:
System.out.println(input.substring(1, input.length()))
因为他似乎知道字符串的确切长度,所以他可以从1到23说,并且像那样子字符串。 – 2011-12-26 19:54:28
是的,但是......原则上,人们永远不会知道弦会持续多久。最好使用你知道的(字符串的前面),然后让Java报告其余部分(字符串的末尾)。 – Makoto 2011-12-26 19:55:38
public class Test{
public static void main(String[] args){
String test = "[ abc ]";
System.out.println(test.substring(1,test.length()-1));
// Outputs " abc "
}
}
这很简单,如果你确定它总是括在括号内 – Identity1 2015-12-07 13:22:38
逸岸,
这个子字符串的重载(startIndex,endIndex);
input.substring(input.indexOf("[")+1,input.lastIndexOf("]"));
此外,如果你想删除的开头和结尾的空格,使用TRIM();
String s = "[ hello, char[]={a,b,c} ... bye ]";
s = s.replaceAll("^\\[|\\]$", "");
在具有前缘和/或后空格的情况下:
String s = " [ hello, char[]={a,b,c} ... bye ] ";
s = s.trim().replaceAll("^\\[|\\]$", "");
非常有用,你能解释为什么你使用两个转义字符(/)? – 2014-12-30 14:23:49
@SashiKant,如果你在字符前面放两个\\,java只会识别那个转义模式 – 2017-01-02 15:42:29
,它取代了内侧支架,这是不想要的结果。 – Makoto 2011-12-26 19:50:02