2016-09-21 5 views
0

Я получил список в Groovy позволяет сказать:Добавить двойные кавычки список строк

[one, two, three] 

Теперь я хочу, чтобы добавить двойные кавычки строк этого массива так, чтобы конечный результат был бы:

["one", "two", "three"] 

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

EDIT: Я использую заводные шаблоны внутри HTML кода, и я просто хочу строку в точном формате я описал выше

+0

Что вы пробовали до сих пор? Также, если вам это нужно для какой-то сериализации (de), то не используйте toString, проверяйте, ... - идите на что-то, что на самом деле зависит от задачи. – cfrick

+0

Я использую groovy templating внутри html-кода, и мне просто нужна строка в указанном выше формате. метод 'inspect()' добавляет одинарные кавычки вместо удвоений – ThanosFisherman

ответ

2

так что если у вас есть:

def list = ['one', 'two', 'three'] 

Тогда вы можете сделать:

List modifiedList = list.collect{ '"' + it + '"'} 

выход: ["one", "two", "three"]

+0

Удивительный! Это тот ответ, который я искал. Простое и прямое спасибо – ThanosFisherman

+0

Возможно, Groovier - «\» $ it \ "" –

1

так, если у вас есть:

def list = ['one', 'two', 'three'] 

Тогда вы можете сделать:

String strList = list.inspect() 

Чтобы получить список цитировал и квадратные скобки

альт ernative бы также сделать:

String strList = new groovy.json.JsonBuilder(list).toString() 

который даст вам то же самое, но в формате JSON (двойные кавычки)

+0

Практически там. Метод 'inspect()' добавляет одинарные кавычки к строкам. Собираюсь попробовать json вещь слишком – ThanosFisherman

+0

@ThanosF выше кода работает, как описано. Если вы получаете ошибки, добавьте их к вопросу с вашими попытками. «не работает» недостаточно, чтобы помочь вам. – cfrick

+0

Я использую groovy templating внутри html-кода, и мне просто нужна строка в точном формате, описанном выше. Как я уже сказал, метод 'inspect()' добавляет одинарные кавычки вместо удвоений, а класс JsonBuilder не существует в шаблонных шаблонах. – ThanosFisherman

-1

Поскольку inspect() метод добавляет одиночные кавычки вместо двойников в заводных шаблонах по какой-то причине, лучшее решение, которое я придумал это

${myList.inspect().replaceAll("\'", "\"")} 

выход: ["one", "two", "three"]

Мое решение по с решением Prakash - единственные, которые работали для меня.

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