문자열을 쉼표, 세미콜론 및/또는 파이프와 같이 사용자가 지정한 문자로 구분할 수 있습니다. 청결 함과 융통성을 위해서 나는 배열 (문자열이나 char 또는 Regex가 무엇이든 관계없이)에서 이러한 delims를 사용하는 것이 이상적입니다.Java - 파이프 구분 기호 ("\ I"), 쉼표로 구분 된 (","), 세미콜론으로 구분 된 (";") 등의 문자열 분할
String[] stringsToSplit = {"alpha,bravo,charlie", "delta;echo;foxtrot", "golf|hotel|india", "juliet\nkilo\nlima"};
String[] acceptedNonEscapedDelims = {"," , ";"};
String[] acceptedEscapedDelims = {"\\|" , "\\n"};
하드 코드 된 Regex를 사용해야 작동합니다.
String[] values = string.split("\\n|\\||\\t|,|;");
정규식을 문자열 배열에 저장하는 것에는 다음과 같은 것이 없습니다.
String[] values = string.split(acceptedEscapedDelims[0]);
나는 개별적으로 하드 코딩 각 하나를 사용하여 가능한 각 구분 및 분할에 대한 부울 플래그를 만들 수 있지만,이 방법은 나에게 해커처럼 보인다. 그런 간단한 일을 위해서, 그것은 또한 사기성으로 피싱합니다. 각각의 분리 문자를 개별적으로 처리한다면 특별한 처리가 필요합니다. 문자열에 쉼표가 포함되는지 여부를 테스트합니다 (쉼표로 분리하기 전에). 그렇지 않으면 단일 문자의 배열 요소가됩니다.
* 질문 1 * 1 개 문자열이 여러 구분 기호를 사용할 수 있습니다 (예 :' "A, B, C | D \ NE 것"이라고'수 유효한 입력이 있다면 5 요소로 분할됩니까?). * 질문 2 * : 데이터에 실제로 쉼표가 포함 된 문자열의 경우 어떻게됩니까? ''달튼, 티모 ','코너리, 션 '; "'? –
'String [] values = string.split (acceptedEscapedDelims [0]);'잘 작동합니다 : https://ideone.com/xLox9T – Keppil