【问题标题】:Matching decimals in strings using matcher()使用 matcher() 匹配字符串中的小数
【发布时间】:2011-06-28 01:34:28
【问题描述】:

我有一个关于匹配器的问题。目前我正在尝试读取一个字符串并将所有数字存储到一个数组中。我的问题是,您如何尝试同时匹配整数和小数?

我有一个双打数组:

double[] thisArray = new double[20];

在这个数组中,我试图存储我从字符串中提取的所有数字。

匹配器温度 = Pattern.compile("(\d+)").matcher(x);

这是我的匹配器功能。但这仅匹配整数。我想匹配整数和小数,如(5.2)。但是我该怎么做呢?我希望能够在我的字符串中输入整数和小数。

任何帮助将不胜感激。谢谢!

【问题讨论】:

    标签: java string decimal matcher


    【解决方案1】:

    短语\d+ 将匹配一串数字。那么在他们两个之间添加一个点呢? (\d+)|(\d+|\.\d+)

    【讨论】:

      【解决方案2】:

      这将处理整数和小数:-

      private Pattern p = Pattern.compile("\\d+(\\.\\d+)?");
      
      @Test
      public void testInteger() {
          Matcher m =p.matcher("10");
      
          assertTrue(m.find());
          assertEquals("10", m.group());
      }
      
      @Test
      public void testDecimal() {
          Matcher m =p.matcher("10.99");
      
          assertTrue(m.find());
          assertEquals("10.99", m.group());
      }
      

      【讨论】:

      • 我知道你有什么,你自己有一个数字,而且 \\.\\d+ 是可选的。谢谢它的工作原理!
      • 这是否也处理负十进制数?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-03
      • 2015-07-29
      • 1970-01-01
      相关资源
      最近更新 更多