Java .trim()是否删除逗号?(爪哇)
为了让我的parseFloat正常工作,我对如何删除这个逗号感到有点困惑。以下是我阅读的信息,例如:`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
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使用它的目的,而不是首先需要的。