我想知道如何只用小写字母(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. 在C中使用大写字母和小写字母对字符串排序
- 2. 递增的字母数字字符串
- 3. 带大写字母和小写字母的字符串转换
- 4. 字母数字字符串
- 5. 在字母数字字符串末尾的javascript增量数字
- 6. 使用中间字符串的VBA代码小写字母到大写字母
- 7. 计算大写字母,小写字母和其他字符
- 8. 用字母和数字递增字符串
- 9. 混合字符串值的字母数字排序:字母数字字母
- 10. SQL Server,将字母数字字符串转换为大写字母数字
- 11. 检查字符串中的小写字母和大写字母相邻吗?
- 12. 如何小写字母转换为大写字母和大写字母为小写字母
- 13. 如何在COBOL中将字母数字字符串转换为数字小数
- 14. 如何使用sscanf查找字符串中的小写字母
- 15. 排序字符串在C中的小写字母前加大写字母字母排序
- 16. 如何生成一个字符串使用字母和数字?
- 17. 如何在字符串中使用Javascirpt大写字母的第一个字母
- 18. 字母数字在PHP中增加一个字符串(一定长度)
- 19. 如何将字符串拆分为字母字符串和数字字符串?
- 20. 在php中将俄文字符从大写字母转换为小写字母
- 21. 递归性。字母数字字符串中的字母
- 22. 查询在非字母数字列中搜索字母数字字符串
- 23. 只识别带有大写字母和小写字母的字符串
- 24. 如何将数字转换为字符串(字母)在PHP?
- 25. 如何识别TSQL中的大写字母和小写字母?
- 26. 如何创建一个程序来过滤掉字符串中的小写字母和大写字母?
- 27. 大写字母,小写字母和其他计数器
- 28. 如何验证字母和数字或只字母的字符串?
- 29. 是否XSLT来增加空间小写字母后面的大写字母
- 30. 如何在数组字符串中搜索非字母字符?
你的意思是增加一个,用“i”变换最后的“h”? –
这是更复杂的解决 –
这些问题之一请提供一些相关的代码示例。我们很乐意为您提供帮助,但我们现在无法看到进一步的信息或屏幕.... –