program tip

Java String 변수의 마지막 문자 제거

radiobox 2020. 12. 28. 08:00
반응형

Java String 변수의 마지막 문자 제거


값이 다음과 같은 Java String 변수

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

마지막 4 개의 문자, 즉 .null. 분할하기 위해 사용할 수있는 방법.


마지막 5 개 문자 ( '.', '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;

어디가 extensionnull입니다. 대신 조건부로 처리하므로 처음에 나쁜 데이터를 얻지 못합니다.

(질문 주석에서 언급했듯이 StringAPI를 살펴 봐야 합니다 . 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);

다른 모든 답변 (2013 년 9 월 8 일 현재)이 하위 문자열의 문자 수를 계산 ".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

BTW, 이것은 Scala 코드입니다. Java에서 작동하려면 대괄호가 필요할 수 있습니다.

참조 URL : https://stackoverflow.com/questions/9125241/remove-the-last-chars-of-the-java-string-variable

반응형