2014-02-19 3 views
3

У меня есть набор String s, где первый и последний символы являются двойными кавычками. Ниже приведен пример.Удаление первого и последнего двойных котировок

String x = "‘Gravity’ tops the box office for 3rd week | New York Post" 

Некоторые другие строки будут содержать двойные кавычки в середине текста, так что я не могу использовать String.replaceAll(). Мне просто нужно удалить первую и последнюю двойные кавычки. Как я могу это сделать?

+3

Вы _can_ используете 'replaceAll()', если знаете о '^' и '$'. Идите и найдите Javadoc для класса «Pattern». –

+0

Наряду с чередованием ('' '' '' '). –

+0

Да, это тоже помогает! –

ответ

8

Если символы " всегда будут первым и последним, вам не нужно регулярное выражение. Просто используйте substring:

x = x.substring(1, x.length() - 1) 
+0

+1 для решения, которое ловит важную информацию в описании проблемы. –

+0

Отличное решение! –

+0

но не работал со мной, что работало 'console.log (someStr.replace (/ ['"] +/g,' ')); 'потому что у меня есть тизер и другие вещи, и это было очень точно – shareef

3

попробовать это регулярное выражение

s = s.replaceAll("\"(.+)\"", "$1"); 
4

Попробуйте этот код:

public class Example { 
    public static void main(String[] args) { 
     String x = "\"‘Gravity’ tops the box office for 3rd week | New York Post\""; 
     String string = x.replaceAll("^\"|\"$", ""); 

     System.out.println(string);  
    } 
} 

это дает:

‘Gravity’ tops the box office for 3rd week | New York Post 
+1

Я не Java-человек, скажем, но не будет 'System.out.println (x)' также давать тот же результат. Поскольку в заменяемой строке нет? Или мне не хватает чего-то волшебного о строковых литералах Java? –

+0

Да, вы правы. –

-1

Самое лучшее, что вы можете сделать, это

str.Trim('"')

Двойная кавычка заключена в двух одинарных кавычках, и это так. Этот метод не ограничивается только двойными кавычками, но вы можете сделать для любого персонажа.

Кроме того, если вы хотите сделать то же самое только для символа начала или конца (не для обоих), даже тогда есть опция. Вы можете сделать то же самое, как

str.TrimEnd('"') 

это только удаляет последний символ и

str.TrimStart('"')

только удаляет только первую (Start) характер

+0

Это не стандартная java, не так ли? – Preuk

0

TRY org.apache.commons.lang3.StringUtils#strip(String str,String stripChars)

StringUtils.strip("‘Gravity’ tops the box office for 3rd week | New York Post", "\""); // no quotes 
StringUtils.strip("\"‘Gravity’ tops the box office for 3rd week | New York Post\"", "\""); // with quotes 
StringUtils.strip("\"\"\"‘Gravity’ tops the box office for 3rd week | New York Post\"", "\"\""); // with multiple quotes - beware all of them are trimmed! 

Все дать:

‘Gravity’ tops the box office for 3rd week | New York Post 
Смежные вопросы