Как мне посчитать количество вхождений символа в начале строки в Java - PullRequest
0 голосов
/ 04 августа 2011

У меня есть строка, похожая на эту ,,,foo,bar, и мне нужно посчитать количество "," в начале строки в Java какие-либо идеи?

Ответы [ 7 ]

2 голосов
/ 04 августа 2011

Имеет переменную counter, которая подсчитывает количество вхождений. Затем выполните цикл по всему String, используя charAt(i), чтобы получить char в позиции i. Проверьте, равно ли оно charAt(0). Если это так, увеличивайте counter, а если нет, break вне цикла.

1 голос
/ 04 августа 2011

Если начальные символы известны, тогда создайте шаблон регулярного выражения и получите первую группу. Первая групповая строка будет содержать точное совпадение желаемой последовательности, длина этой строки является результирующим счетчиком.

1 голос
/ 04 августа 2011

Взгляните на String Javadoc .Он содержит методы, которые вы можете использовать, чтобы получить длину строки и получить символы в определенных позициях.

0 голосов
/ 04 августа 2011

Вы также можете использовать регулярное выражение:

public static int countCommasAtBegin(String str) {
    Matcher commas = Pattern.compile("^,*").matcher(str);
    if (commas.find()) {
        return commas.group().length();
    } else {
        return 0;
    }
}

но для такой тривиальной задачи я предпочитаю использовать простой цикл.

0 голосов
/ 04 августа 2011

Если вы не хотите использовать какие-либо внешние банки, просто напишите простую функцию:

public static int countAtBegin(String str, char c) {
    for (int ret = 0; ret < str.length(); ret++) {
        if (str.charAt(ret) != c)
            return ret;
    }
    return str.length();
}
0 голосов
/ 04 августа 2011

Это быстрое и грязное решение сработало для меня.

public static void main(String[] args)
{
    String s = ",,,foo,bar";
    int count = 0;
    for (int i = 0; i < s.length() ; i++) {
        if (s.charAt(i) != ',')
            break;
        count++;
    }

    System.out.println("count " + count);
}

Обновление: только что понял, что вам нужно только посчитать ',' в начале строки, а не в середине.Я обновил код, чтобы сделать это.

0 голосов
/ 04 августа 2011

Простой цикл (while или for), содержащий if с условием равенства, которое увеличивает счетчик, если true должно быть достаточно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...