繁体   English   中英

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

[英]How to find the number of newlines and word separated by “,” in Java?

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

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

要获得换行符的数量

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,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

你的错误只是

String splitted = str.split(','); // Wrong

应该是一个数组

String[] splitted = str.split(','); // Fixed

当 Java 程序打印 arrays 时,第一个字符是L ,后跟 class,然后是对象的 ZECD2617BF37190CD88169B495000CD86000CD86000CD88000CD8000000000000。

这里有一些 Java 代码可以编译,这样你就可以看到脚本语言隐藏的问题:

String[] lines = originalString.split("\\r?\\n")); // Do this only once

int numberOfNewLines = lines.length;
int myLine = 5; // Say

String[] words = lines[myLine];

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

新行字符是 '\n'。 所以你应该先用'\n'分割。 然后用','分割。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM