如何在Java中找到由“,”分隔的换行符和单词的数量?

时间:2011-06-01 05:36:33

标签: java groovy

我的字符串变量包含一个String,每个字符串都在不同的行上。如何在其中找到新行的数量,然后在特定的字符串行上用,分隔符分隔每个单词?变量内容如下所示

null37,Abhishek,ARS,b,ABC,Development,2011-05-30 00:00:00.0,abhishek123@cjb.net
null38,Abhishek,SAS,c,ABC,Development,2011-05-30 00:00:00.0,abhishek123@cjb.net
null39,Abhishek,DGV,a,ABC,Production,2011-05-30 00:00:00.0,abhishek123@cjb.net

编辑:

我试过这个

String xmlstr="""null37,Abhishek,ARS,b,ABC,Development,2011-05-30 00:00:00.0,abhishek123@cjb.net
null38,Abhishek,SAS,c,ABC,Development,2011-05-30 00:00:00.0,abhishek123@cjb.net
null39,Abhishek,DGV,a,ABC,Production,2011-05-30 00:00:00.0,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

4 个答案:

答案 0 :(得分:4)

要获取换行数

int newLines = myString.split("\\r?\\n").length;

用逗号分隔每个单词

String[] words = myString.split(",");

答案 1 :(得分:3)

您也可以使用Groovy的splitEachLine方法。

它的工作原理如下:

String xmlstr = """null37,Abhishek,ARS,b,ABC,Development,2011-05-30 00:00:00.0,abhishek123@cjb.net
null38,Abhishek,SAS,c,ABC,Development,2011-05-30 00:00:00.0,abhishek123@cjb.net
null39,Abhishek,DGV,a,ABC,Production,2011-05-30 00:00:00.0,abhishek123@cjb.net"""

xmlstr.splitEachLine( /,/ ) { tokens ->
  println "${tokens[1]} : ${tokens[7]}"
}

打印出来:

Abhishek : abhishek123@cjb.net
Abhishek : abhishek123@cjb.net
Abhishek : abhishek123@cjb.net

答案 2 :(得分:2)

你的错误只是那个

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];

您可以轻松地将这些想法包含在一些干净的代码中。

答案 3 :(得分:0)

新行char是'\ n'。 所以你应该首先用'\ n'分割。 然后用','分开。

String[] splittedByNewLine = originalString.Split('\n');

for(String str : splittedByNewLine )
{
   String[] splittedByComma = str.split(',');
   for(String str : splittedByComma )
   {
       "println str..."
   }       
}