Get string from between two characters

孤街浪徒 提交于 2019-12-02 09:47:52

问题


I need to get string from between two characters. I have this

S= "10:21:35 |Manipulation       |Mémoire centrale   |MAJ Registre mémoire"

and it have to return 4 strings each in a variable:

a=10:21:35
b=Manipulation
c=Mémoire centrale
d=MAJ Registre mémoire

回答1:


There's String#split. Since it accepts a regular expression string, and | is a special character in regular expressions, you'll need to escape it (with a backslash). And since \ is a special character in Java string literals, you'll need to escape it, too, which people sometimes find confusing. So given:

String S = "10:21:35 |Manipulation |Mémoire centrale |MAJ Registre mémoire";

then

String[] parts = S.split("\\|");
int index;
for (index = 0; index < parts.length; ++index) {
    System.out.println(parts[index]);
}

would output

10:21:35 
Manipulation 
Mémoire centrale 
MAJ Registre mémoire

(With the trailing spaces on the first three bits; trim those if necessary.)




回答2:


String s = " 10:21:35   |  Manipulation |  Mémoire centrale |   MAJ Registre mémoire   ";
String[] split = s.trim().split("\\s*\\|\\s*",-1); //trim and split



回答3:


Alternatively, org.apache.commons.lang.StringUtils has about 14 variants of the split() method.




回答4:


If the length of each column is varient, use the examples given here with the split method.

However, if you have a fixed-sized file format substring will be a much better option. If you look at the implementation of substring (Java 5 and above if I recall correctly) - you can see that it has an O(1) to create the new strings, whereas split uses a regex which is time consuming.




回答5:


You probably want this:

String[] s = "10:21:35 |Manipulation |Mémoire centrale |MAJ Registre mémoire".split("\\|");

There's also method trim() which removes trailing spaces from the strings.




回答6:


Like in other answers I suggest you using split() method to separate your string but remeber to use trim if you won't have spaces after parts, like this:

S= "10:21:35 |Manipulation       |Mémoire centrale   |MAJ Registre mémoire"    
String splitted[] = S.split("\\|");
String a = splitted[0].trim();
String b = splitted[1].trim();
...



回答7:


You can also use string.substring and get the required output as

string a =s.substring(0,8)

Like this u can assign for the one you want



来源:https://stackoverflow.com/questions/5604498/get-string-from-between-two-characters

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!