2011-12-26 3 views
2

В Java я хочу избавиться от ведущих и конечных скобок в строке.
Учитывая вход:Удалить ведущие и конечные скобки в строке

"[ hello, char[]={a,b,c} ... bye ]" 

Как я могу производить вывод

" hello, char[]={a,b,c} ... bye " 

только ведущий [ и замыкающие ] удаляется ... Как я могу сделать это в Java?

ответ

16
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 
0
String a = "[ hello, char[]={a,b,c} ... bye ] "; 
a.substring(1,23); 
System.out.println(a); 

Там вы идете, я пропустил чтение.

+4

, который заменяет внутренние скобки, который является не то, что было задумано. – Makoto

2

Посмотрите на String.substring() метод:

System.out.println(input.substring(1, input.length())) 
+0

Поскольку он, кажется, знает точную длину строки, он может сказать от 1 до 23 и подстроить ее так. –

+1

Да, но ... в принципе, никто не знает, как долго будет строка. Всегда лучше использовать то, что вы * знаете (где находится передняя строка), затем пусть Java сообщит остальное (где конец строки). – Makoto

7
public class Test{ 
    public static void main(String[] args){ 
     String test = "[ abc ]"; 
     System.out.println(test.substring(1,test.length()-1)); 
     // Outputs " abc " 
    } 
} 
+0

Это довольно просто, если вы уверены, что он всегда заключен в скобки – Identity1

3

Infact,

эта перегрузка подстроки (startIndex, endIndex);

input.substring(input.indexOf("[")+1,input.lastIndexOf("]"));

также, если вы хотите, чтобы удалить начало и завершающие пробелы, используйте накладку();

3
String s = "[ hello, char[]={a,b,c} ... bye ]"; 
s = s.replaceAll("^\\[|\\]$", ""); 

в случае наличия ведущих и/или конечных пробелов:

String s = " [ hello, char[]={a,b,c} ... bye ] "; 
s = s.trim().replaceAll("^\\[|\\]$", ""); 
+0

Очень полезно, не могли бы вы объяснить, почему вы использовали два escape-символа (/)? –

+0

@SashiKant, java распознает только этот режим эвакуации, если вы положили два символа \\ перед символом –

Смежные вопросы