我得到一个字符串,其中包含一串用“,”分隔的数字,格式如下:
1.2223232323232323,74.00
我希望它们成为String [],但我只需要逗号右边的数字。 (74.00)。 该列表有大约10,000个不同的行,如上所述。现在我正在使用String.split(“,”),它给了我:
System.out.println(String[1]) =
1.2223232323232323
74.00
为什么不分成两个不同的索引?我认为它应该是这样的分裂:
System.out.println(String[1]) = 1.2223232323232323
System.out.println(String[2]) = 74.00
但是,在String []上,array = string.split(“,”)生成一个索引,两个值都用换行符分隔。
我只需要74.00我假设我需要使用REGEX,这对我来说是一种希望。有人可以帮帮我:)?
答案 0 :(得分: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]);
答案 1 :(得分:0)
试试:
String[] parts = "1.2223232323232323,74.00".split(",");
String value = parts[1]; // your 74.00
答案 2 :(得分:0)
String[] strings = "1.2223232323232323,74.00".split(",");