1

我已经尝试了以下示例,但它给出了以下输出 output[]。我已将字符串“1.0”传递给函数calculatePayout(),并希望将 1s[0]和 0 存储在s[1]

import java.util.Arrays;


    public class aps {

        public void calculatePayout(String amount)
        {
            String[] s = amount.split(".");
            System.out.println("output"+Arrays.toString(s));
        }

    public static void main(String args[])
    {
        new aps().calculatePayout("1.0");
    }
    }
4

5 回答 5

10

方法split()接受正则表达式。.正则表达式中的字符表示“一切”。要拆分字符串,.您必须将其转义,即split("\\."). 需要第二个反斜杠,因为第一个转义正则表达式的点,第二个转义 Java 编译器的反斜杠。

于 2013-04-18T09:09:07.137 回答
4

尝试转义点:

String[] s = amount.split("\\.");

因为点是正则表达式中的“任何字符” 。

于 2013-04-18T09:07:56.410 回答
3

尝试 amount.split("\\.")

Split方法使用正则表达式,因此您需要使用正确的语法并转义点。

于 2013-04-18T09:08:40.050 回答
1

.是正则表达式世界中的元字符或特殊字符。String#split(regex)期望正则表达式作为参数,您要么必须用反斜杠转义它,要么使用字符类以将其视为普通字符

要么amount.split("\\.");amount.split("[.]");

于 2013-04-18T09:09:32.223 回答
1

尝试

amount.split("\\.")

split 方法接受一个正则表达式

于 2013-04-18T09:09:36.750 回答