반응형
PHP를 사용하여 다음 문자를 가장 쉽게 사용하는 방법
a에서 z까지의 문자가 주어지면 PHP를 사용하여 알파벳의 다음 문자를 얻는 가장 쉬운 방법은 무엇입니까?
일을 추론이 효율적인 방법 나의 의견입니다 만 증가 문자열 변수를.
$str = 'a';
echo ++$str; // prints 'b'
$str = 'z';
echo ++$str; // prints 'aa'
표시되는 것처럼 증분 'z'
을 'aa'
대신하는 대신에 원하는 경우 'a'
결과의 길이를 확인하고 >1
할 수 있습니다.
$ch = 'a';
$next_ch = ++$ch;
if (strlen($next_ch) > 1) { // if you go beyond z or Z reset to a or A
$next_ch = $next_ch[0];
}
Z를 눌렀을 때 원하는 작업에 따라 다르지만 몇 가지 옵션이 있습니다.
$nextChar = chr(ord($currChar) + 1); // "a" -> "b", "z" -> "{"
PHP의 range()
기능 을 사용할 수 있습니다 .
$chars = range('a', 'z'); // ['a', 'b', 'c', 'd', ...]
글쎄, 그것은 당신이 "에지 케이스"로 정확히 무엇을 할 것인지에 달려 있습니다. 캐릭터가 z
또는 일 때 어떤 결과를 기대 Z
하십니까? 당신의 다음 문자는 같은 경우 , 또는 바로 다음 문자, 기간?
이에 대한 답을 모른 채 아주 기본적인 경우에는 다음과 같이 할 수 있습니다.
$next_character = chr(ord($current_character) + 1);
당신 Z
이 있을 때이 당신을 줄 것입니다 [
, 그리고 z
당신은 ASCII 값에 따라 줄 {
것입니다.
댓글에 따라 수정 :
같은 대소 문자의 다음 문자가 필요한 경우 위 줄 간단한 검사를 추가 할 수 있습니다.
if ($next_character == '[')
$next_character = 'A';
else if ($next_character == '{')
$next_character = 'a';
이것은 매우 간단한 작업입니다. 이런 경우에는 효율성에 대해 걱정할 필요가 없습니다.
어떻게 사용하는 방법에 대한 ORD ()와 CHR ()을 ?
<?php
$next = chr(ord($prev)+1);
?>
이 경우 소문자 만 신경 쓰이다 여기에 게시 된 답변에 따라 다음 코드를 사용하겠습니다.
function nextLetter(&$str) {
$str = ('z' === $str ? 'a' : ++$str);
}
도와 주셔서 감사합니다!
$val = 'z';
echo chr((((ord($val) - 97) + 1) % 26) + 97);
쉬운 쉬운 :-)
모든 문자의 배열을 만들고 기존 문자를 검색하고 다음 문자를 반환합니다. 마지막 편지에 도달하면 첫 번째 편지를 반환하십시오.
반응형
'ProgramingTip' 카테고리의 다른 글
iPhone 및 WireShark (0) | 2020.11.10 |
---|---|
std :: string으로 조건부 중단 점을 만드는 방법 (0) | 2020.11.10 |
PowerShell에서 출력을 $ null로 리디렉션하지만 변수가 설정되어 있는지 확인 (0) | 2020.11.10 |
Rails : 호출을 호출하지 않고 모델 속성 업데이트 (0) | 2020.11.10 |
PHPStorm의 코드 검사에서 파일 / 폴더를 제외하는 방법은 무엇입니까? (0) | 2020.11.10 |