我想知道如何只用小写字母(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”? –
这是更复杂的解决 –
这些问题之一请提供一些相关的代码示例。我们很乐意为您提供帮助,但我们现在无法看到进一步的信息或屏幕.... –