2013-07-26 4 views
2

String을 Array로 분할하려고합니다.
string.split 메서드를 사용합니다.Java String.Split split everyone

내 코드

  list = "Toni Mustermann|Jenny Mustermann|Jorge Mustermann"; 
      kinderarray = list.split("|"); 

하지만이 출력 (안드로이드)입니다 : http://i.stack.imgur.com/QHmvT.png

http://i.stack.imgur.com/QHmvT.png

강령 :

AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    builder.setTitle("Wähle ein Kind"); 
    builder.setItems(kinderarray, new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int item) { 
      selectkind = kinderarray[item]; 
      Toast.makeText(MainActivity.this, selectkind, Toast.LENGTH_SHORT).show(); 
     } 
    }); 
    AlertDialog alert = builder.create(); 
    alert.show(); 

답변

10

String#split는 일반 expressio를 사용 n을 인수로 사용합니다. 파이프 문자 |은 표현식에 또는을 나타내는 데 사용되는 특수 문자입니다. 그렇지 않으면 또는 표현이 String 초기 빈 String 요소를 갖춘 개별 문자를 기반으로 String 배열로 분할하게됩니다

kinderarray = list.split("\\|"); 

을 탈출해야합니다.

이것은 변경되지 않았으므로 same for the next year's Java 8 release으로 남았습니다.

+0

해답과 설명에 감사드립니다. – ternes3

+0

나는 이런 식으로 RE를 만들었다는 것을 싫어한다. 너무 놀랍다 (최소한의 놀라움의 원칙에 위배된다). 이것은 아마도 프로그래머 - 해로 하여금 split ("|")과 같은 것이 (chunk에서 몇분이라도) 작동하지 않는 이유를 알아 내려고 노력했을 것입니다. 나는 그들이 정규 표현식 유형을 도입하고 String.split (new RE ("|"))와 같은 것을 사용하기를 바란다. –

+0

네, Java 8에서 변경되지 않았습니다. 그래서 여기에 머물러 있습니다 : / – Reimeus