[java] Java-문자열의 첫 문자 제거

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

Jamaica

문자열의 첫 번째 문자를 제거하고 반환하고 싶습니다 amaica

어떻게해야합니까?



답변

substring()인수가 있는 함수를 사용하여 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"

자바, 문자열의 어느 곳에서나 문자의 첫 번째 인스턴스를 제거하십시오.

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에서 이해해야 할 핵심은 문자열이 변경 불가능하다는 것입니다. 변경할 수는 없습니다. 따라서 ‘문자열에서 문자 제거’에 대해 말하는 것은 의미가 없습니다. 대신 원하는 문자만으로 새로운 문자열을 만듭니다. 이 질문의 다른 게시물에는 다양한 방법이 있지만 원래 문자열이 변경되지 않는다는 것을 이해하는 것이 중요합니다. 이전 문자열에 대한 참조는 이전 문자열을 계속 참조하며 (다른 문자열을 참조하도록 변경하지 않는 한) 새로 작성된 문자열의 영향을받지 않습니다.

이것은 성능에 많은 영향을 미칩니다. 문자열을 ‘수정’할 때마다 실제로 모든 오버 헤드가 암시 된 (메모리 할당 및 가비지 수집) 새 문자열을 만듭니다. 따라서 문자열을 일련의 수정하고 최종 결과에만 신경을 쓰려면 (중간 문자열은 ‘수정’하자마자 죽을 것입니다) 대신 StringBuilder 또는 StringBuffer를 사용하는 것이 좋습니다.