Соответствие десятичных знаков в строках с помощью matcher () - PullRequest
1 голос
/ 16 февраля 2011

У меня вопрос по поводу соответствия. В настоящее время я пытаюсь прочитать строку и сохранить все цифры в массиве. Мой вопрос: как вы пытаетесь сопоставить целые и десятичные числа?

У меня есть массив парных чисел:

double [] thisArray = new double [20];

В этом массиве я пытаюсь сохранить все числа, извлеченные из строки.

Matcher temp = Pattern.compile ( "(\ d +)") согласовани (х);.

Это моя функция для сопоставителя. Но это соответствует только целым числам. Я хочу сопоставить целые и десятичные числа, например (5.2). Но как мне это сделать? Я хочу иметь возможность вводить целые и десятичные числа в моей строке.

Любая помощь будет оценена. Спасибо!

Ответы [ 2 ]

2 голосов
/ 16 февраля 2011

Это будет обрабатывать как целые, так и десятичные числа: -

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());
}
0 голосов
/ 16 февраля 2011

Фраза \d+ будет соответствовать строке чисел.Так что насчет добавления точки между ними?(\d+)|(\d+|\.\d+)

...