问题描述
|
我的字符串变量包含一个字符串,每个字符串都在不同的行上。我如何找到其中的新行数,然后在特定的字符串行上用“ 0”定界符分隔每个单词?变量内容如下所示
null37,Abhishek,ARS,b,ABC,Development,2011-05-30 00:00:00.0,abhishek123@cjb.net
null38,SAS,c,abhishek123@cjb.net
null39,DGV,a,Production,abhishek123@cjb.net
编辑:
我试过了
String xmlstr=\"\"\"null37,abhishek123@cjb.net\"\"\"
String[] splitStr = xmlstr.split(\'\\n\');
for(String str : splitStr)
{
String splitted = str.split(\',\');
println splitted
}
我收到未知的东西,
[Ljava.lang.String;@148bd3
[Ljava.lang.String;@a4e743
[Ljava.lang.String;@4aeb52
解决方法
获取换行数
int newLines = myString.split(\"\\\\r?\\\\n\").length;
要用逗号分隔每个单词,请执行以下操作
String[] words = myString.split(\",\");
, 您也可以使用Groovy的splitEachLine
方法。
它是这样的:
String xmlstr = \"\"\"null37,Abhishek,ARS,b,ABC,Development,2011-05-30 00:00:00.0,abhishek123@cjb.net
null38,SAS,c,abhishek123@cjb.net
null39,DGV,a,Production,abhishek123@cjb.net\"\"\"
xmlstr.splitEachLine( /,/ ) { tokens ->
println \"${tokens[1]} : ${tokens[7]}\"
}
打印出来:
Abhishek : abhishek123@cjb.net
Abhishek : abhishek123@cjb.net
Abhishek : abhishek123@cjb.net
, 你的错误只是
String splitted = str.split(\',\'); // Wrong
应该是一个数组:
String[] splitted = str.split(\',\'); // Fixed
当Java程序打印数组时,第一个字符是L
,后跟类,然后是对象的内存位置。
以下是一些将要编译的Java代码,因此您可以看到脚本语言隐藏的问题:
String[] lines = originalString.split(\"\\\\r?\\\\n\")); // Do this only once
int numberOfNewLines = lines.length;
int myLine = 5; // Say
String[] words = lines[myLine];
您可以轻松地用一些干净的代码包装这些想法。
, 新行char为\'\\ n \'。
因此,您应该先除以\'\\ n \'。
然后除以\',\'。
String[] splittedByNewLine = originalString.Split(\'\\n\');
for(String str : splittedByNewLine )
{
String[] splittedByComma = str.split(\',\');
for(String str : splittedByComma )
{
\"println str...\"
}
}