programing

첫 번째 인스턴스에서만 문자열 분할 - java

randomtip 2022. 7. 11. 22:39
반응형

첫 번째 인스턴스에서만 문자열 분할 - java

문자열을 '=' charecter로 분할하고 싶습니다.하지만 첫 번째 경우에만 분할했으면 좋겠어요.내가 어떻게 그럴 수 있을까?다음은 '_' char에 대한 JavaScript 예제입니다만, 지정된 문자의 번째 인스턴스에서만 문자열을 분할할 수 없습니다.

예:

apple=fruit table price=5

String.split('=')을 시도하면

[apple],[fruit table price],[5]

하지만 나는 필요하다

[apple],[fruit table price=5]

고마워요.

string.split("=", 2);

설명대로:

이 메서드에 의해 반환되는 배열에는 지정된 표현과 일치하거나 문자열 끝에 의해 종료되는 이 문자열의 각 하위 문자열이 포함됩니다.배열 내의 하위 문자열은 이 문자열에서 발생한 순서대로 배열됩니다.식이 입력의 어느 부분과도 일치하지 않으면 결과 배열에는 이 문자열이라는 하나의 요소만 포함됩니다.

limitparameter는 패턴이 적용되는 횟수를 제어하기 때문에 결과 배열의 길이에 영향을 줍니다.제한 n이 0보다 클 경우 패턴은 n~1회까지 적용되며 어레이의 길이는 n보다 크지 않으며 어레이의 마지막 엔트리는 마지막으로 일치한 딜리미터 이외의 모든 입력을 포함합니다.

스트링boo:and:foo예를 들어 이들 파라미터를 사용하여 다음 결과를 얻을 수 있습니다.

Regex Limit    Result
:     2        { "boo", "and:foo" }
:     5        { "boo", "and", "foo" }
:    -2        { "boo", "and", "foo" }
o     5        { "b", "", ":and:f", "", "" }
o    -2        { "b", "", ":and:f", "", "" }
o     0        { "b", "", ":and:f" }

예, 분할 메서드에 정수 매개 변수를 전달하기만 하면 됩니다.

String stSplit = "apple=fruit table price=5"

stSplit.split("=", 2);

다음은 Java 문서 참조 String #split(java.lang)입니다.문자열, int)

다른 많은 답변들이 한계 접근법을 제안하듯이, 이것은 다른 방법이 될 수 있습니다.

지정된 문자의 첫 번째 오카렌스를 반환하는 string에서 indexOf 메서드를 사용할 수 있습니다.이 인덱스를 사용하면 원하는 출력을 얻을 수 있습니다.

String target = "apple=fruit table price=5" ;
int x= target.indexOf("=");
System.out.println(target.substring(x+1));
String string = "This is test string on web";
String splitData[] = string.split("\\s", 2);

Result ::
splitData[0] =>  This
splitData[1] =>  is test string  


String string = "This is test string on web";
String splitData[] = string.split("\\s", 3);

Result ::
splitData[0] =>  This
splitData[1] =>  is
splitData[1] =>  test string on web

기본적으로는 지정된 regex를 기반으로 n개의 어레이를 만듭니다.그러나 정수 인수로 split than second 인수를 전달한 후 작성하는 배열 수를 제한하는 경우.

이 방법은 다음과 같습니다.

public class Split
{
    public static void main(String...args)
    {
        String a = "%abcdef&Ghijk%xyz";
        String b[] = a.split("%", 2);
        
        System.out.println("Value = "+b[1]);
    }
}
String[] func(String apple){
String[] tmp = new String[2];
for(int i=0;i<apple.length;i++){
   if(apple.charAt(i)=='='){
      tmp[0]=apple.substring(0,i);
      tmp[1]=apple.substring(i+1,apple.length);
      break;
   }
}
return tmp;
}
//returns string_ARRAY_!

독자적인 메서드를 쓰는 것을 좋아합니다:)

언급URL : https://stackoverflow.com/questions/18462826/split-string-only-on-first-instance-java

반응형