У меня есть строка «Chicago-Illinos1», и я хочу добавить ее до конца, так что это будет «Chicago-Illinos2».
Примечание: это также может быть Chicago-Illinos10, и я хочу, чтобы он отправился в Chicago-Illinos11, поэтому я не могу сделать substr.
Любые предлагаемые решения?
Попробуй это
preg_match("/(.*?)(\d+)$/","Chicago-Illinos1",$matches); $newstring = $matches[1].($matches[2]+1);
(не могу попробовать сейчас, но он должен работать)
Комплексные решения для действительно простой задачи …
$str = 'Chicago-Illinos1'; echo $str++; //Chicago-Illinos2
Если строка заканчивается номером, она будет увеличивать число (например: 'abc123' ++ = 'abc124').
Если строка заканчивается буквой, буква будет увеличиваться (например: '123abc' ++ = '123abd')
$string = 'Chicago-Illinois1'; preg_match('/^([^\d]+)([\d]*?)$/', $string, $match); $string = $match[1]; $number = $match[2] + 1; $string .= $number;
Протестировано, работает.
взорвать мог бы сделать работу, а также
<?php $str="Chicago-Illinos1"; //our original string $temp=explode("Chicago-Illinos",$str); //making an array of it $str="Chicago-Illinos".($temp[1]+1); //the text and the number+1 ?>
Я бы использовал регулярное выражение, чтобы получить номер в конце строки (для Java это будет [0-9] + $ ), увеличьте его ( int number = Integer.parse (yourNumberAsString) + 1 ) и соединитесь с Chicago-Illinos (остальные не соответствуют регулярному выражению, используемому для нахождения номера).