Java .trim()是否删除逗号?(爪哇)

Java .trim()是否删除逗号?(爪哇),java,parsing,trim,Java,Parsing,Trim,为了让我的parseFloat正常工作,我对如何删除这个逗号感到有点困惑。以下是我阅读的信息,例如:` 541.0, 387.0 String num[] = in.nextLine().split(","); // Trim and then parseFloat for x and y float x = Float.parseFloat(num[0].trim()); float y = Fl

为了让我的parseFloat正常工作,我对如何删除这个逗号感到有点困惑。以下是我阅读的信息,例如:`

541.0, 387.0

            String num[] = in.nextLine().split(",");
            // Trim and then parseFloat for x and y
            float x = Float.parseFloat(num[0].trim());
            float y = Float.parseFloat(num[1].trim());
num[]以逗号分隔此信息,因此我们最终得到:

num[0]=541.0

num[1]=387.0

然后,当我调用trim时,逗号消失了。据我所知,trim只删除了空格?有人能解释一下吗?

trim
不会删除逗号,不会

split
会删除传递的分隔符。因此,
split(“,”)
删除逗号

请注意,某些地区(例如法国)使用逗号作为十进制分隔符:
Float.parseFloat()
(与地区无关,始终使用
作为十进制分隔符)可能会出现意外行为。

调用
split()
时,它使用分隔符
并基于此将您的输入“拆分”到一个数组中。因此逗号在那里被删除了,而不是在调用
trim()时被删除。


我不知道你怎么知道你得到了
num[0]=541.0,

Trim删除单词开头和结尾的空格

例如,单词“test”变成了“test”。

从文件来看

返回字符串的副本,包括前导和尾随空格 省略

如果此字符串对象表示空字符序列,或 此字段表示的字符序列的第一个和最后一个字符 字符串对象的代码都大于“\u0020”(空格 字符),然后返回对此字符串对象的引用

否则,如果没有代码大于'\u0020'的字符 在字符串中,然后是表示空字符串的新字符串对象 创建并返回

否则,将k设为字符串中第一个字符的索引 其代码大于'\u0020',且m为 字符串中代码大于'\u0020'的最后一个字符。A. 将创建新的字符串对象,表示此字符串的子字符串 以索引k处的字符开头,以 索引m处的字符-即此子字符串(k,m+1)的结果

此方法可用于从 字符串的开头和结尾

因此,不。只有前导和尾随空格会受到影响

如果您感兴趣,这里是[]

现在,要查看如何删除
。你打电话给斯普利特

从文件来看

围绕给定正则表达式的匹配项拆分此字符串

此方法的工作方式类似于通过调用具有 给定的表达式和零的极限参数。尾随空 因此,结果数组中不包括字符串

例如,字符串“boo:and:foo”产生以下结果 用这些表达:

Regex     Result
:     { "boo", "and", "foo" }
o     { "b", "", ":and:f" }
因此,将删除分隔符,并在其周围拆分字符串。如前所述,这里是[]。跟随超链接链

参考您的帖子,
num[0]=541.0,
不正确
num[0]=541.0
(不带逗号)


此外,您确实不需要调用
trim()
,因为
Double.parseDouble()
函数已经完成了这项工作。[][](请参阅第二个链接中的第1009行)

split()
正在删除逗号。
Trim()
不是删除逗号的内容。是
split()
方法。@dj1121-
trim()
删除了所有的前导和尾随空格。哦,我在调试器中完全搞糊涂了。调试器显示逗号来分隔索引,所以我感到很困惑。非常感谢。大家好。实际上,
parseDouble()
调用trim(源代码链接在我下面的文章中)。因此,修剪字符串只是为了OP使用它的目的,而不是首先需要的。