0

我得到了一个字符串,其中有一串数字用“,”分隔,格式如下:

1.2223232323232323,74.00

我希望它们变成一个字符串 [],但我只需要逗号右侧的数字。(74.00)。该列表有大约 10,000 条不同的行,如上面的行。现在我正在使用 String.split(",") 这给了我:

System.out.println(String[1]) =
1.2223232323232323 
74.00

为什么它不分成两个不同的索引?我认为在 split 上应该是这样的:

 System.out.println(String[1]) = 1.2223232323232323
 System.out.println(String[2]) = 74.00

但是,在 String[] array = string.split (",") 上生成一个索引,两个值由换行符分隔。

我只需要 74.00 我假设我需要使用 REGEX,这对我来说有点希腊化。有人可以帮我:)吗?

4

3 回答 3

2

如果它在一个文件中:

Scanner sc = new Scanner(new File("..."));
sc.useDelimiter("(\r?\n)?.*?,");
while (sc.hasNext())
  System.out.println(sc.next());

如果都是一个巨大的字符串,用换行符分隔:

String oneGiantString = "1.22,74.00\n1.22,74.00\n1.22,74.00";
Scanner sc = new Scanner(oneGiantString);
sc.useDelimiter("(\r?\n)?.*?,");
while (sc.hasNext())
  System.out.println(sc.next());

如果每个都只有一个字符串:

String line = "1.2223232323232323,74.00";
System.out.println(line.replaceFirst(".*?,", ""));

正则表达式解释:

(\r?\n)?表示可选的换行符。
.表示通配符。
.*?表示 0 个或多个通配符(*?与仅*表示非贪婪匹配相反,但这对您来说可能意义不大)。
,意思是,嗯,...,一个逗号。

参考

split对于文件或单个字符串:

String line = "1.2223232323232323,74.00";
String value = line.split(",")[1];

split对于一个巨大的字符串(也需要正则表达式)(但我更喜欢Scanner,它不需要所有的内存):

String line = "1.22,74.00\n1.22,74.00\n1.22,74.00";
String[] array = line.split("(\r?\n)?.*?,");
for (int i = 1; i < array.length; i++) // the first element is empty
   System.out.println(array[i]);
于 2013-03-04T11:23:59.910 回答
0

只需尝试:

String[] parts = "1.2223232323232323,74.00".split(",");
String value   = parts[1]; // your 74.00
于 2013-03-04T11:19:26.357 回答
0
String[] strings = "1.2223232323232323,74.00".split(",");
于 2013-03-04T11:20:09.147 回答