[java] 첫 번째 인스턴스에서만 문자열 분리-Java

문자열을 ‘=’문자로 나누고 싶습니다. 그러나 첫 번째 인스턴스에서만 분리하고 싶습니다. 어떻게해야합니까? 다음은 ‘_’char의 JavaScript 예제이지만 지정된 문자의 첫 번째 인스턴스에서만 문자열을 분할하면 작동하지 않습니다.

예 :

apple=fruit table price=5

String.split ( ‘=’)을 시도하면; 그것은 준다

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

하지만 난 필요해

[apple],[fruit table price=5]

감사



답변

string.split("=", 2);

String.split(java.lang.String regex, int limit)설명 대로 :

이 메소드에 의해 돌려 주어지는 배열에는,이 식의 각 부분 캐릭터 라인이 포함됩니다. 배열의 하위 문자열은이 문자열에서 순서대로 나타납니다. 표현식이 입력의 일부와 일치하지 않으면 결과 배열에는 하나의 요소, 즉이 문자열 만 있습니다.

limit매개 변수는 패턴이 적용되는 횟수를 제어하므로 결과 배열의 길이에 영향을줍니다. 한계 n 이 0보다 크면 패턴이 최대 n -1 회까지 적용되며 배열의 길이는 n 보다 크지 않으며 배열의 마지막 항목은 마지막으로 일치 한 구분자를 초과하는 모든 입력을 포함합니다.

boo:and:foo예를 들어, string 은 다음 매개 변수를 사용하여 다음 결과를 생성합니다.

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" }

답변

예, 정수 매개 변수를 split 메소드에 전달하면됩니다.

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

stSplit.split("=", 2);

다음은 Java doc 참조입니다. String # split (java.lang.String, int)


답변

다른 많은 답변이 한계 접근 방식을 제안하므로 다른 방법이 될 수 있습니다

주어진 문자의 첫 번째 발생을 반환하는 String 에서 indexOf 메소드를 사용할 수 있습니다. 해당 인덱스를 사용하면 원하는 출력을 얻을 수 있습니다

String target = "apple=fruit table price=5" ;
int x= target.indexOf("=");
System.out.println(target.substring(x+1));


답변

이 코드를 사용해보십시오 …

작동합니다.

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 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

기본적으로 split 방법은 주어진 정규식을 기준으로 n 개의 배열을 만듭니다. 그러나 두 번째 인수를 정수 인수로 전달하는 것보다 분할 후 만들 배열 수를 제한하려는 경우.


답변

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_!

나는 자신의 방법을 쓰는 것을 좋아한다 🙂


답변