How to split a string in Java -


i have string, "004-034556", want split 2 strings:

string1=004 string2=034556 

that means first string contain characters before '-', , second string contain characters after '-'. want check if string has '-' in it. if not, throw exception. how can this?

just use appropriate method: string#split().

string string = "004-034556"; string[] parts = string.split("-"); string part1 = parts[0]; // 004 string part2 = parts[1]; // 034556 

note takes regular expression, remember escape special characters if necessary.

there 12 characters special meanings: backslash \, caret ^, dollar sign $, period or dot ., vertical bar or pipe symbol |, question mark ?, asterisk or star *, plus sign +, opening parenthesis (, closing parenthesis ), , opening square bracket [, opening curly brace {, these special characters called "metacharacters".

so, if want split on e.g. period/dot . means "any character" in regex, use either backslash \ escape individual special character split("\\."), or use character class [] represent literal character(s) split("[.]"), or use pattern#quote() escape entire string split(pattern.quote(".")).

string[] parts = string.split(pattern.quote(".")); // split on period. 

to test beforehand if string contains character(s), use string#contains().

if (string.contains("-")) {     // split it. } else {     throw new illegalargumentexception("string " + string + " not contain -"); } 

note, not take regular expression. that, use string#matches() instead.

if you'd retain split character in resulting parts, make use of positive lookaround. in case want have split character end in left hand side, use positive lookbehind prefixing ?<= group on pattern.

string string = "004-034556"; string[] parts = string.split("(?<=-)"); string part1 = parts[0]; // 004- string part2 = parts[1]; // 034556 

in case want have split character end in right hand side, use positive lookahead prefixing ?= group on pattern.

string string = "004-034556"; string[] parts = string.split("(?=-)"); string part1 = parts[0]; // 004 string part2 = parts[1]; // -034556 

if you'd limit number of resulting parts, can supply desired number 2nd argument of split() method.

string string = "004-034556-42"; string[] parts = string.split("-", 2); string part1 = parts[0]; // 004 string part2 = parts[1]; // 034556-42 

Comments

Popular posts from this blog

Is there a better way to structure post methods in Class Based Views -

performance - Why is XCHG reg, reg a 3 micro-op instruction on modern Intel architectures? -

jquery - Responsive Navbar with Sub Navbar -