Струнная отделка в Java - PullRequest
       1

Струнная отделка в Java

1 голос
/ 10 февраля 2012

Я должен обрезать (включая пробелы внутри строки) все строки в списке.Я написал метод, чтобы сделать это с помощью регулярных выражений.Я использую strArray[i] = trimString(strArray[i]); вместо расширенного цикла for.Я предполагаю, что поскольку строка неизменна, этот способ назначения обратно одному и тому же элементу массива является правильным.Я прав?

public void trimStringArray(String[] strArray){
    if(strArray!= null && strArray.length > 0){
        for(int i=0;i<strArray.length;i++){
            strArray[i] = trimString(strArray[i]);
        }           
    }
}

Ответы [ 3 ]

3 голосов
/ 10 февраля 2012

Да, это нормально, и вы не сможете использовать расширенный цикл for.Однако вы можете упростить свой код, избавившись от проверки length > 0 - выполнение цикла 0 не повредит ... и лично я бы обычно ожидал, что параметр для такого метода будетв любом случае ненулевое значение, приводящее к такому коду:

public void trimStringArray(String[] strArray) {
    Preconditions.checkNotNull(strArray);
    for(int i = 0; i < strArray.length; i++) {
        strArray[i] = trimString(strArray[i]);
    }
}

(Preconditions.checkNotNull происходит от Гуава в данном случае.)

Вы могли бы оставить его принимающим null - но у вас действительно есть много ситуаций, когда допустимо иметь нулевой массив, но вы хотите обрезать все, если это не так?

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

for(int i=0;i<strArray.length;i++){
1 голос
/ 10 февраля 2012

Да, это нормально. Я бы добавил add final в метод подписи. Добавляя final, вы можете по ошибке убедиться, что вы не переназначаете ссылки (дополнительная безопасность).

public void trimStringArray(final String[] strArray){
1 голос
/ 10 февраля 2012

Да, ваш код правильный.

Обратите внимание, что проверка strArray.length > 0 является избыточной: условие цикла автоматически позаботится о случае, когда strArray имеет нулевую длину.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...