【发布时间】:2014-02-21 02:04:54
【问题描述】:
在java中怎么做,检查字符串时提示错误
- 字符串有特殊字符,其 EBCDIC 值大于十六进制“
3F”或 - 大于十六进制“
1F”的 ASCII 值。 EBCDIC “00” - “3F” 和 ASCII “00” - “1F” 值的出现无效。
对不起,如果我的问题重复或混淆了
提前致谢
【问题讨论】:
-
你尝试了什么,你卡在哪里了?
在java中怎么做,检查字符串时提示错误
3F”或1F”的 ASCII 值。 EBCDIC “00” - “3F” 和 ASCII “00” - “1F” 值的出现无效。对不起,如果我的问题重复或混淆了
提前致谢
【问题讨论】:
您可以按照此答案中的说明对字符串进行排序:Sort a single String in Java
char[] chars = original.toCharArray();
Arrays.sort(chars);
排序后,您只需检查字符数组中的最后一个字符是否高于您给定的十六进制值。
对于 EBCDIC,您可以将比较器添加到基于 EBCDIC 的排序和顺序中。
char[] chars = original.toCharArray();
// I will convert my array of chars to array of Characters to use Arrays.sort
int length = Array.getLength(chars);
Character[] ret = new Character[length];
for(int i = 0; i < length; i++)
ret[i] = (Character)Array.get(chars, i);
// and now the important bit
Arrays.sort(ret, new Comparator<Character>() {
@Override
public int compare(Character arg0, Character arg1) {
// convert arg0 and arg1 to EBCDIC with whatever tools you have
return arg0InEBCDIC - arg1InEDBCIC;
}
});
一旦你有了一个有序数组,你只需要检查最后一个元素,就像我说的那样。
【讨论】: