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

问题描述

| 我的字符串变量包含一个字符串,每个字符串都在不同的行上。我如何找到其中的新行数,然后在特定的字符串行上用“ 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...\"
   }       
}