.trim()删除逗号吗? (JAVA)

时间:2016-04-12 13:49:16

标签: 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 = Float.parseFloat(num[1].trim());

num []用逗号分隔这些信息,因此最终得到:

num [0] = 541.0,

num [1] = 387.0

然后当我打电话给修剪时,逗号消失了。从我的理解修剪只删除了空白?有人可以解释一下吗?

4 个答案:

答案 0 :(得分:9)

trim 删除逗号,否。

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

请注意,某些区域设置(例如法国)使用逗号作为小数点分隔符:Float.parseFloat()(与区域设置无关,始终使用.作为小数分隔符)可能表现出意外。

答案 1 :(得分:1)

[String].trim()

来自文档,

  

返回字符串的副本,包含前导和尾随空格   删去。

     

如果此String对象表示空字符序列,或者   由此表示的字符序列的第一个和最后一个字符   字符串对象的代码都大于' \ u0020' (空间   (),然后返回对此String对象的引用。

     

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

     

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

     

此方法可用于从中修剪空白(如上所述)   字符串的开头和结尾。

所以,不。 前导空格和尾随空格会受到影响。

如果您有兴趣,请点击[source code]。

现在,了解,是如何删除的。你打电话给分裂了。

[String].split()

来自文档,

  

将此字符串 分割为给定正则表达式的 匹配。

     

此方法的工作方式就像通过调用双参数split方法一样   给定的表达式和一个零的限制参数。尾随空   因此,字符串不包含在结果数组中。

     

字符串" boo:和:foo",例如,产生以下结果   用这些表达式:

Regex     Result
:     { "boo", "and", "foo" }
o     { "b", "", ":and:f" }

因此,分隔符被删除,字符串围绕它split。和以前一样,这里是[source code]。关注超链接will lead you here

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

此外,您真的不需要致电trim(),因为Double.parseDouble()功能已经这样做了。 [main source] [related](请参阅第二个链接中的第1009行)

答案 2 :(得分:0)

当您致电split()时,它会使用分隔符,和'分割'基于此输入到数组中。因此,删除了逗号,而不是拨打trim().

我不知道你是怎么想的num[0] = 541.0,

答案 3 :(得分:0)

修剪会删除单词开头和结尾的空格。

例如单词"测试"变成"测试"。