java - Split a string by a byte -


i have string has ascii control characters in (namely rs (0x1e) , us (0x1f)). have defined them in code such:

static public final byte rs  = 0x1e; static public final byte  = 0x1f; 

later in code, want split string using these characters:

string[] records = content.split(string.valueof(rs)); 

but, doesn't work correctly. after fiddling found this

string[] records = content.split("\u001e"); 

does work, in case, have remember codes. use rs static byte in other parts, changing not real option. of course create rs_string or something, means double work.

any clean solution this?

declaring character char rather byte fixed me - following works fine:

char rs  = 0x1e; string s = new string(new char[]{'d', rs, 'e'}); system.out.println(s.split(string.valueof(rs)).length); //prints 2 

however, using byte type causes fail:

byte rs  = 0x1e; string s = new string(new char[]{'d', (char)rs, 'e'}); system.out.println(s.split(string.valueof(rs)).length); //prints 1 

you can of course cast char byte if need refer such in other parts of code.


Comments

Popular posts from this blog

php - failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request -

java - How to filter a backspace keyboard input -

java - Show Soft Keyboard when EditText Appears -