programing

Java - 문자열의 첫 번째 문자 제거

firstcheck 2022. 8. 3. 21:07
반응형

Java - 문자열의 첫 번째 문자 제거

Java에서는 문자열이 있습니다.

Jamaica

의 첫 하고 반환하고 .amaica

이거 어떻게 해요?

함수를 인수와 함께 사용합니다.1위치 1( 번째 문자 이후)에서 문자열 끝까지 서브스트링을 가져옵니다(두 번째 인수 출력 기본값은 문자열 전체 길이).

"Jamaica".substring(1);
public String removeFirstChar(String s){
   return s.substring(1);
}

substring()앞부터 자르고 싶은 글자 수를 알려주시면 됩니다.

String value = "Jamaica";
value = value.substring(1);

답변: amaica

Java에서는 특정 문자인 경우에만 선행 문자를 제거합니다.

Java 3진 연산자를 사용하여 캐릭터를 삭제하기 전에 캐릭터가 존재하는지 빠르게 확인합니다.선두 문자가 존재하는 경우에만 삭제되고 공백 문자열이 전달되면 공백 문자열이 반환됩니다.

String header = "";
header = header.startsWith("#") ? header.substring(1) : header;
System.out.println(header);

header = "foobar";
header = header.startsWith("#") ? header.substring(1) : header;
System.out.println(header);

header = "#moobar";
header = header.startsWith("#") ? header.substring(1) : header;
System.out.println(header);

인쇄:

blankstring
foobar
moobar

Java, 문자열의 임의의 위치에 있는 모든 문자 인스턴스를 삭제합니다.

String a = "Cool";
a = a.replace("o","");
//variable 'a' contains the string "Cl"

Java, 문자열의 임의의 위치에 있는 문자의 첫 번째 인스턴스를 삭제합니다.

String b = "Cool";
b = b.replaceFirst("o","");
//variable 'b' contains the string "Col"

서브스트링 메서드를 사용할 수 있습니다.String시작 인덱스만 사용하고 지정된 인덱스에서 문자로 시작하여 문자열 끝까지 확장되는 하위 문자열을 반환합니다.

String str = "Jamaica";
str = str.substring(1);
public String removeFirst(String input)
{
    return input.substring(1);
}

Java에서 이해해야 할 중요한 점은 문자열은 불변이라는 것입니다. 문자열은 변경할 수 없습니다.그래서 '줄에서 글자 빼기'를 말하는 것은 말이 안 된다.대신 원하는 문자만 사용하여 새 문자열을 만듭니다.이 질문의 다른 게시물은 다양한 방법을 제공하지만 원본 문자열은 변경되지 않는다는 것을 이해하는 것이 중요합니다.오래된 스트링에 대한 참조는 계속 오래된 스트링을 참조하며(다른 스트링을 참조하도록 변경한 경우는 제외), 새로 작성된 스트링의 영향을 받지 않습니다.

이는 성능에 많은 영향을 미칩니다.문자열을 '수정'할 때마다 실제로는 모든 오버헤드가 포함된 새 문자열을 만듭니다(메모리 할당 및 가비지 컬렉션).따라서 문자열에 일련의 변경을 가하고 최종 결과에만 관심을 갖는 경우(중간 문자열은 '수정'되는 즉시 비활성화됨), 대신 String Builder 또는 String Buffer를 사용하는 것이 더 합리적일 수 있습니다.

다음과 같이 할 수 있습니다.

String str = "Jamaica";
str = str.substring(1, title.length());
return str;

또는 일반적으로:

public String removeFirstChar(String str){
   return str.substring(1, title.length());
}

substring() 메서드는 이 시퀀스에 현재 포함되어 있는 문자의 후속 문자를 포함하는 새로운 문자열을 반환합니다.

서브스트링은 지정된 문자부터 시작하여의 문자까지 확장됩니다.

그것은 두 가지 형태가 있다.첫 번째는

  1. String substring(int FirstIndex)

여기서 FirstIndex는 서브스트링이 시작되는 인덱스를 지정합니다.이 형식은 FirstIndex에서 시작하여 호출 문자열의 끝까지 실행되는 하위 문자열의 복사본을 반환합니다.

  1. String substring(int FirstIndex, int endIndex)

여기서 FirstIndex는 시작 인덱스를 지정하고 endIndex는 정지점을 지정합니다.반환되는 문자열에는 시작 인덱스의 모든 문자가 포함되지만 끝 인덱스는 포함되지 않습니다.

   String str = "Amiyo";
   // prints substring from index 3
   System.out.println("substring is = " + str.substring(3)); // Output 'yo'

첫 번째 글자뿐만 아니라 삭제해야 하는 상황이 발생하였습니다.#, 단, 첫 번째 문자 세트입니다.

String myString = ###Hello World출발점이 될 수도 있지만, 저는 단지 이 모든 것을Hello World다음과 같이 할 수 있습니다.

while (myString.charAt(0) == '#') { // Remove all the # chars in front of the real string
    myString = myString.substring(1, myString.length());
}

OP의 경우 치환while와 함께if그것도 효과가 있습니다.

또 다른 솔루션으로는 다음 방법으로 문제를 해결할 수 있습니다.replaceAll약간의 정규식을 가지고^.{1}(regex 데모)의 예:

String str = "Jamaica";
int nbr = 1;
str = str.replaceAll("^.{" + nbr + "}", "");//Output = amaica

간단하게 사용할 수 있습니다.substring().

String myString = "Jamaica"
String myStringWithoutJ = myString.substring(1)

메서드의 인덱스는 결과 문자열을 가져오는 위치를 나타냅니다.이 경우 "Jamaica"에서 "J"를 원하지 않기 때문에 첫 번째 위치 이후에 결과 문자열을 가져옵니다.

하나 또는 여러 개의 선행 문자를 제거하는 내 버전입니다.예를 들어 String str1 = "01234"에서 선행 '0'을 제거하면 결과가 "1234"가 됩니다.String str2 = "000123"의 경우 결과는 다시 "123"이 됩니다.String str3 = "000" 의 경우 결과는 빈 문자열이 됩니다. "이러한 기능은 종종 숫자 문자열을 숫자로 변환할 때 유용합니다.regex(replaceAll(...))와 비교하여 이 솔루션의 장점은 이 솔루션이 훨씬 빠르다는 것입니다.이는 다수의 문자열을 처리할 때 중요합니다.

 public static String removeLeadingChar(String str, char ch) {
    int idx = 0;
    while ((idx < str.length()) && (str.charAt(idx) == ch))
        idx++;
    return str.substring(idx);
}

##KOTLIN #정상 동작합니다.

tv.doOnTextChanged { text: CharSequence?, start, count, after ->
            val length = text.toString().length
            if (length==1 && text!!.startsWith(" ")) {
                tv?.setText("")
            }
        }

언급URL : https://stackoverflow.com/questions/4503656/java-removing-first-character-of-a-string

반응형