Привет, я пытаюсь изучить Java, поэтому я конвертирую свой рабочий c++ код в java. Но я не уверен, как продолжить работу с str.find(). Есть ли эквивалент этого в java? Я хочу, чтобы это произошло, я ищу первое вхождение строки в другой строке после первой запятой, не целой. Я знаю indexOf() и indexLastOf, но они будут производить только кулак и последние вхождения.
void found() {
int count = 1;
size_t find = str.find(',');
while (find != string::npos) {
count++;
find = str.find(',', find + 1);
}
}
};
вы можете использовать str.indexOf('some string', indexToStartLooking); который найдет первое вхождение "некоторой строки" после int во втором параметре и вернет int.
indexOf
без дополнительного аргумента, чтобы найти первую запятую; затем, что бы это ни возвращало, передайте его последующему вызову indexOf
. Это точно так же, как и ваш C ++, только с indexOf
вместо find
и -1
вместо string::npos
.
Попробуйте использовать Java Pattern и Matcher. Эти классы связаны с сопоставлением шаблонов регулярных выражений. Это очень просто. Найдите здесь другие существующие сообщения по этому вопросу.
indexOf
с дополнительным аргументомint
.