2014-11-10 1 views
1

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

+3

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

+0

Не знаете, что сложно в массивах .... или расщепление строк ... нужна дополнительная информация – WIllJBD

+0

http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/base/Splitter. html –

ответ

0

Использование класса com.google.common.base.Splitter из Google Guava:

List<String> list = Splitter.on(',').splitToList("foo,bar,qux"); 

Или:

Iterable<String> iterator = Splitter.on(',').split("foo,bar,qux"); 
+0

Очень элегантный.Было бы хорошо, если бы все использовали библиотеки общин. – GGrec

3

Я не могу придумать более простой способ разделить String, чем String#split(",").

Если массивы вас раздражают, вы можете просто сделать следующее

List<String> splitList = Arrays.asList(theString.split(",")); 

, потому что список является более гибким.

Если это не удовлетворяет вашему вопросу, вы должны быть более конкретным.

(Я дал запятой регулярное выражение в качестве примера)

+0

Довольно уверен^это ^. Я не знаю, что вы захотите сделать расщепления без какого-либо массива/списка за ним. Если вы хотите скрыть сложность, т. Е. Если у вас есть строка с тремя частями, разделенными на две запятые, и вы хотите, чтобы средняя часть каждый раз выполнялась, затем создайте функцию и вызовите ее, чтобы скрыть скрытие массивов от вашего зрения , По правде говоря, массивы - это основная часть программирования, вам нужно научиться любить их. – WIllJBD

1

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

Да, вы можете.

Если вы ищете дополнительные вспомогательные методы и простые функции, которые помогут возвращать массивы строк, а не только массивы символов. Проверьте Apache StringUtils

http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html

Также вы можете использовать 2d массив символов

char[][] 

Или вы можете просто использовать ваши строковые массивы

String[] 

Независимо StringUtils будет иметь большинство все, что вам может понадобиться. Если вы обнаружите, что вы много копируете вставку логики или повторяете одну и ту же логику разделения, снова завершите ее в функцию и просто вызовите ее.

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