Удалите последние символы строковой переменной Java



строковая переменная java, значение которой



String path = "http://cdn.gs.com/new/downloads/Q22010MVR_PressRelease.pdf.null"


Я хочу, чтобы удалить последние четыре символа, т. е. .null. Какой метод я могу использовать, чтобы разделить.

1180   6  

6 ответов:

Я думаю, что вы хотите удалить последний пять символы ('.', 'n', 'u',' l','l'):

path = path.substring(0, path.length() - 5);

обратите внимание, как нужно использовать возвращаемое значение-строки неизменяемы, поэтому substring (и другие методы) не изменяют существующую строку - они возвращают ссылку на новая строка с соответствующими данными.

или быть немного безопаснее:

if (path.endsWith(".null")) {
  path = path.substring(0, path.length() - 5);
}

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

path = name + "." + extension;

здесь extension имеет значение null. Я бы условно это вместо этого, так что вы никогда не получите плохие данные в первую очередь.

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

import org.apache.commons.lang3.StringUtils;

// path = "http://cdn.gs.com/new/downloads/Q22010MVR_PressRelease.pdf.null"
StringUtils.removeEnd(path, ".null");
// path = "http://cdn.gs.com/new/downloads/Q22010MVR_PressRelease.pdf"
path = path.substring(0, path.length() - 5);

Я удивлен, что все остальные ответы (по состоянию на 8 сентября 2013 года) либо включают подсчет количества символов в подстроке ".null" и StringIndexOutOfBoundsException Если подстрока не найдена. Или так: - (

Я предлагаю следующее:

public class Main {

    public static void main(String[] args) {

        String path = "file.txt";
        String extension = ".doc";

        int position = path.lastIndexOf(extension);

        if (position!=-1)
            path = path.substring(0, position);
        else
            System.out.println("Extension: "+extension+" not found");

        System.out.println("Result: "+path);
    }

}

если подстрока не найдена, ничего не происходит, так как отрезать нечего. Вы не получите StringIndexOutOfBoundsException. Кроме того, вам не нужно самостоятельно подсчитывать символы в подстроке.

Если вы хотите удалить последние 5 символов, вы можете использовать:

path.substring(0,path.length() - 5)

( может содержать от одной ошибки ;) )

Если вы хотите удалить некоторую переменную строку:

path.substring(0,path.lastIndexOf('yoursubstringtoremove));

(также может содержать одну ошибку;))

иначе:

if (s.size > 5) s.reverse.substring(5).reverse

кстати, это код Scala. Может потребоваться скобки для работы в Java.

Comments

    Ничего не найдено.