gpt4 book ai didi

java - 逻辑排序大写字母和数字的混合字符串

转载 作者:搜寻专家 更新时间:2023-10-31 20:20:55 25 4
gpt4 key购买 nike

我有一个由大写字母和数字组成的字符串,我必须对其进行“逻辑”排序并存储在数据库的一个字段中。我已经弄清楚了数据库的更新/更改/查询部分。我正在努力对这个字符串进行逻辑排序。

说到这里,我希望我能解释清楚。

给定这组字符串AB1AB2AB3A11AB10

我需要这些像这样进行 alpha 排序

A11AB1AB2AB3AB10

为了实现这一点,我相信我需要分解字符串。因为目前尝试进行 alpha 排序会产生 A11 AB1 AB10 AB2 AB3

编辑:我需要能够存储分解字符串和非分解字符串以便能够与其他程序一起排序。

这是我认为需要将它们分解和存储以便对 alpha 进行排序

A11  -  A   11
AB1 - AB 1
AB2 - AB 2
AB3 - AB 3
AB10 - AB 10

有一些常量。该字符串将不超过 5 个位置。它只会包含大写字母和数字。

这是我的代码的全部内容。作家阻止所以我希望得到一些帮助。我想我需要找到它是否以字母开头,然后找到所有连续的字母,将它们向左移动,然后开始处理数字,找到所有连续的数字并将它们右对齐。也不确定“A1B1”之类的东西是如何工作的...

for(int ii = 0;ii < sectionString.length() && ii< SECTIONSPACES;ii++){
System.out.print(" Was previous a number? " + isPreviousANumber + "\n");
try{
String tmpString = sectionString.substring(ii,ii + 1 );
int positionInCharArray = Integer.parseInt(tmpString);
System.out.printf(" Position " + ii + " is number " + positionInCharArray + "\n");
isPreviousANumber = true;
}catch(Exception e){
System.out.printf(" Position " + ii + " number is not a number " + sectionString.substring(ii,ii) + "\n");
isPreviousANumber = false;
}
}

最佳答案

这句话“不确定‘A1B1’之类的东西是如何工作的……”在某种程度上增加了问题的复杂性。以下内容适用于所有情况。

方法:

将字符串分成标记。标记可以是一个字母,也可以是一串连续的数字。用前导空格将每个数字标记填充为五个字符。连接标记以构成展开的字符串。

从 5 个字符的原始字符串开始,最长的分解字符串将是 17 个字符。

生成的分解字符串可以通过任何程序或 SQL“ORDERED BY”子句进行排序。

例子:

1A1A1   "    1A    1A    1"
11A11 " 11A 11"
1111A " 1111A"
11111 "11111"
A1 "A 1"
A1B1 "A 1B 1"
A1C "A 1C"
A2 "A 2"
A2B1 "A 2B 1"
A10 "A 10"
A10B1 "A 10B 1"
A11 "A 11"
AA1 "AA 1"
AB1 "AB 1"
AB2 "AB 2"
AB10 "AB 10"
ABC "ABC"

伪代码:

// original = "section" string
exploded = ""
prevdigits = false
for ii from 1 to length(original) {
ch = original[ii]
if (ch is a digit) then {
if not prevdigits then {
token = ""
prevdigits = true
}
token = token+ch
} else { // letter
if prevdigits then {
exploded = exploded + spaces(5-length(token)) + token
prevdigits = false
}
exploded = exploded + ch
}
}

-铝

关于java - 逻辑排序大写字母和数字的混合字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19117717/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com