Java 从两个字符之间获取字符串
我需要从两个字符之间获取字符串。我有这个Java 从两个字符之间获取字符串,java,string,special-characters,Java,String,Special Characters,我需要从两个字符之间获取字符串。我有这个 S= "10:21:35 |Manipulation |Mémoire centrale |MAJ Registre mémoire" 它必须在一个变量中分别返回4个字符串: a=10:21:35 b=Manipulation c=Mémoire centrale d=MAJ Registre mémoire 有一个。由于它接受正则表达式字符串,并且|是正则表达式中的特殊字符,因此需要对其进行转义(使用反斜杠)。由于\是Java字符串
S= "10:21:35 |Manipulation |Mémoire centrale |MAJ Registre mémoire"
它必须在一个变量中分别返回4个字符串:
a=10:21:35
b=Manipulation
c=Mémoire centrale
d=MAJ Registre mémoire
有一个。由于它接受正则表达式字符串,并且|
是正则表达式中的特殊字符,因此需要对其进行转义(使用反斜杠)。由于\
是Java字符串文本中的一个特殊字符,您也需要对其进行转义,这有时会让人感到困惑。因此:
String S = "10:21:35 |Manipulation |Mémoire centrale |MAJ Registre mémoire";
然后
String[]parts=S.split(“\\\\”);
整数指数;
对于(索引=0;索引
将输出
10:21:35
Manipulation
Mémoire centrale
MAJ Registre mémoire
10:21:35
操纵
中央梅莫尔酒店
梅莫尔大酒店
(前三位的尾随空格;如果需要的话。)有。由于它接受正则表达式字符串,并且|
是正则表达式中的特殊字符,因此需要对其进行转义(使用反斜杠)。由于\
是Java字符串文本中的一个特殊字符,您也需要对其进行转义,这有时会让人感到困惑。因此:
String S = "10:21:35 |Manipulation |Mémoire centrale |MAJ Registre mémoire";
然后
String[]parts=S.split(“\\\\”);
整数指数;
对于(索引=0;索引
将输出
10:21:35
Manipulation
Mémoire centrale
MAJ Registre mémoire
10:21:35
操纵
中央梅莫尔酒店
梅莫尔大酒店
(前三位的尾随空格;如果需要的话。)您可能需要:
String[] s = "10:21:35 |Manipulation |Mémoire centrale |MAJ Registre mémoire".split("\\|");
还有一种方法
trim()
,可以从字符串中删除尾随空格。您可能需要这样:
String[] s = "10:21:35 |Manipulation |Mémoire centrale |MAJ Registre mémoire".split("\\|");
还有一种方法
trim()
,可以从字符串中删除尾随空格。您也可以使用string.substring并获得所需的输出
string a =s.substring(0,8)
像这样,你可以为你想要的指定一个你也可以使用string.substring并获得所需的输出
string a =s.substring(0,8)
String s = " 10:21:35 | Manipulation | Mémoire centrale | MAJ Registre mémoire ";
String[] split = s.trim().split("\\s*\\|\\s*",-1); //trim and split
像这样,你可以为你想要的方法赋值。或者,org.apache.commons.lang.StringUtils有大约14种split()方法的变体。或者,org.apache.commons.lang.StringUtils有大约14种split()方法的变体。就像我建议你使用split()的其他答案一样方法来分隔字符串,但如果部分后没有空格,请记住使用trim,如下所示:
String s = " 10:21:35 | Manipulation | Mémoire centrale | MAJ Registre mémoire ";
String[] split = s.trim().split("\\s*\\|\\s*",-1); //trim and split
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();
...
像在其他答案中一样,我建议您使用split()方法来分隔字符串,但如果部分后没有空格,请记住使用trim,如下所示:
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();
...
如果每列的长度不同,请使用此处给出的示例和
split
方法
但是,如果您有一个固定大小的文件格式,子字符串将是一个更好的选择。如果您查看
子字符串的实现(如果我没记错的话,Java 5及以上版本)-您可以看到它有一个O(1)来创建新字符串,而split
使用一个非常耗时的正则表达式。如果每个列的长度不同,请将这里给出的示例与split
方法一起使用
但是,如果您有一个固定大小的文件格式,子字符串将是一个更好的选择。如果你看一下子字符串的实现(如果我没记错的话,Java 5和更高版本)-你可以看到它有一个O(1)来创建新字符串,而split
使用一个非常耗时的正则表达式。这是最好的选择get@fayza:LOL不用担心,很高兴这有帮助。我会使用split的2参数版本,至少如果其中一个(最后一个)字段可以为空,否则将丢弃尾随的空字符串<代码>字符串[]部分=S.split(“\\\\\”,4)代码>或String[]parts=S.split(“\\\\”,-1)代码>这是您能做的最好的get@fayza:LOL不用担心,很高兴这有帮助。我会使用split的2参数版本,至少如果(最后)一个字段可以为空,否则尾部的空字符串将被丢弃<代码>字符串[]部分=S.split(“\\\\\”,4)代码>或String[]parts=S.split(“\\\\”,-1)代码>否,返回单个字符串的大数组。正如我在回答中所说,|
是正则表达式中的一个特殊字符,String#split
使用正则表达式字符串。你是对的,你必须用两个反斜杠转义“|”。抱歉,我在发布代码之前没有运行代码。不,这将返回一个大的单字符串数组。正如我在回答中所说,|
是正则表达式中的一个特殊字符,String#split
使用正则表达式字符串。你是对的,你必须用两个反斜杠转义“|”。很抱歉,我在发布代码之前没有运行代码。这会删除尾随空格,但最后一列除外。最好提供第二个参数以拆分尾随字段,否则可能会丢失空尾随字段。这会删除尾随空格,但最后一列除外。最好提供第二个参数以拆分尾随字段,否则可能会丢失空尾随字段。