我想知道如何只用小寫字母(a-z)和數字(0-9)來增加一個字母數字字符串。我試圖檢查所有可能的字符串組合,長度爲64個字符,所以字符串看起來像 g67de5c1e86bc123442db60ae9ce615042dbf4e14e7z481ba3c1c9c3219101gh
(對於那些你認爲它是字符串散列函數的種子)。該字符串需要從末尾到末尾遞增。有沒有辦法增加它?如何在PHP中使用小寫字母和數字來增加字母數字字符串?
回答
我們定義了一個字母表「abcdefghijklmnopqstuvxzyz」。假設增量會從工作結束到開始和每個增量將「增加」一個字母的ASCII值:
例如:
「一」將成爲「B」
「0」 將變成 「1」
「9」 將變成 「一個」
「Z」 將成爲 「0」
「ABC」 - > 「ABD」
「01Z」 - > 「020」
..
等
下面的算法將工作:
<?php
class Increment {
private $alphabet;
public function __construct($alphabet)
{
$this->alphabet = $alphabet;
}
public function getNext($text)
{
$length = strlen($text);
$increment = true;
for ($i=$length; $i--; $i > 0) {
$currentCharacter = $text[$i];
if ($increment) {
$increment = $this->hasReachEndOfAlphabet($currentCharacter);
$text[$i] = $this->getIncrementedCharacter($currentCharacter);
}
}
return $text;
}
private function getIncrementedCharacter($currentCharacter)
{
$position = strpos($this->alphabet, $currentCharacter);
if (!$this->hasReachEndOfAlphabet($currentCharacter)) {
return $this->alphabet[++$position];
}
return $this->alphabet[0];
}
private function hasReachEndOfAlphabet($currentCharacter)
{
$position = strpos($this->alphabet, $currentCharacter);
if ($position < strlen($this->alphabet) -1) {
return false;
}
return true;
}
} //end of class
$text = "g67de5c1e86bc123442db60ae9ce615042dbf4e14e7z481ba3c1c9c3219101gh";
$alphabet = "";
for ($i=97;$i<=122;$i++) {
$alphabet .= chr($i);
}
$increment = new Increment($alphabet);
$next = $increment->getNext($text);
print_r($next.PHP_EOL); // outputs g67de5c1e86bc123442db60ae9ce615042dbf4e14e7z481ba3c1c9c3219101gi
非常感謝!我甚至從來沒有想過添加我自己的字母表並使用它! –
我很高興我能幫忙,如果你認爲這是正確的答案,你應該標記它 –
我剛剛創建了我的計算器帳戶,所以我的標記不會出現,因爲我還沒有15的聲望。再次感謝! –
- 1. 如何增加PHP中的字母數字字符串?
- 2. 在C中使用大寫字母和小寫字母對字符串排序
- 3. 帶大寫字母和小寫字母的字符串轉換
- 4. 遞增的字母數字字符串
- 5. 如何在字母數字字符串
- 6. 字母數字字符串
- 7. PHP字母,數字,字符串其餘
- 8. 接受大寫和小寫字母的字母數字約束
- 9. 在字母數字字符串末尾的javascript增量數字
- 10. 如何seprate字母數字字符串轉換成數字和字母
- 11. 使用數字和字母在字符串中提取整數
- 12. 在每個大寫字母后加小寫字母后加小寫字母
- 13. 大寫字母和小寫字母
- 14. 使用中間字符串的VBA代碼小寫字母到大寫字母
- 15. 計算大寫字母,小寫字母和其他字符
- 16. 用Jquery檢查大寫字母/小寫字母/數字
- 17. 用字母和數字遞增字符串
- 18. 混合字符串值的字母數字排序:字母數字字母
- 19. SQL Server,將字母數字字符串轉換爲大寫字母數字
- 20. 檢查字符串中的小寫字母和大寫字母相鄰嗎?
- 21. Python:替換字符串中的大寫字母和小寫字母
- 22. 如何小寫字母轉換爲大寫字母和大寫字母爲小寫字母
- 23. 如何在COBOL中將字母數字字符串轉換爲數字小數
- 24. 如何使用sscanf查找字符串中的小寫字母
- 25. 排序字符串在C中的小寫字母前加大寫字母字母排序
- 26. 如何生成一個字符串使用字母和數字?
- 27. Groovy中用字母和數字排序的數字字符串
- 28. 用字母和數字匹配字符串中的數字
- 29. 正則表達式匹配大寫字母,數字或大寫字母,小寫字母和數字
- 30. 如何在字符串中編寫下標小寫字母
你的意思是增加一個,用「i」變換最後的「h」? –
這是更復雜的解決 –
這些問題之一請提供一些相關的代碼示例。我們很樂意爲您提供幫助,但我們現在無法看到進一步的信息或屏幕.... –