Program Tip

문자열의 첫 번째와 마지막 문자를 제거하는 방법은 무엇입니까?

programtip 2020. 11. 19. 21:53
반응형

문자열의 첫 번째와 마지막 문자를 제거하는 방법은 무엇입니까?


SOAP 메시지에서 Webservice에서 LoginToken을 얻고 LoginToken을 String에 저장하고 System.out.println(LoginToken);인쇄 하는 데 사용 했습니다. 이렇게하면 [wdsd34svdf]가 출력되지만 wdsd34svdf 만 원하므로 대괄호를 제거하는 방법은 무엇입니까? 누구든지 도와주세요.

감사

예:

String LoginToken=getName().toString();
System.out.println("LoginToken" + LoginToken);

출력 : [wdsd34svdf] wdsd34svdf를 원합니다.


쉽습니다. [및]의 색인을 찾은 다음 하위 문자열을 찾아야합니다. (여기서 [은 항상 시작에 있고]는 끝에 있습니다),

String loginToken="[wdsd34svdf]";
System.out.println(loginToken.substring(1, loginToken.length()-1));

이것은 일반적인 솔루션입니다.

str.replaceAll("^.|.$", "")

항상 다음을 사용할 수 있습니다 substring.

String loginToken = getName().toString();
loginToken = loginToken.substring(1, loginToken.length() - 1);

이 문제에 대한 또 다른 해결책은 commons-lang (버전 2.0 이후) StringUtils.substringBetween(String str, String open, String close)방법을 사용하는 것입니다. 주요 장점은 null 안전 작동이라는 것입니다.

StringUtils.substringBetween("[wdsd34svdf]", "[", "]"); // returns wdsd34svdf


비슷한 시나리오가 있었는데

str.replaceAll("\[|\]", "");

깨끗해 보였다. 물론 토큰에 대괄호가있을 수 있다면 작동하지 않습니다.


이렇게하면 1 개의 선행 "["및 1 개의 후행 "]"문자를 제거 할 수 있습니다. 문자열이 "["로 시작하지 않거나 "]"로 끝나지 않으면 아무것도 제거되지 않습니다.

str.replaceAll("^\\[|\\]$", "")

StringUtilsremoveStartremoveEnd메서드는 문자열의 시작과 끝에서 문자열을 제거하는 데 도움이됩니다.

이 경우이 두 가지 방법의 조합을 사용할 수도 있습니다.

String string = "[wdsd34svdf]";
System.out.println(StringUtils.removeStart(StringUtils.removeEnd(string, "]"), "["));

이것은 당신에게 기본적인 아이디어를 줄 것입니다

    String str="";
    String str1="";
    Scanner S=new Scanner(System.in);
    System.out.println("Enter the string");
    str=S.nextLine();
    int length=str.length();
    for(int i=0;i<length;i++)
    {
        str1=str.substring(1, length-1);
    }
    System.out.println(str1);

참고 URL : https://stackoverflow.com/questions/8846173/how-to-remove-first-and-last-character-of-a-string

반응형