java字符串根据特定的ascii值进行过滤

时间:2014-01-29 10:26:48

标签: java string ascii hex

如何在java中完成,检查字符串以在

时提示错误
  • 字符串包含特殊字符,其 EBCDIC 值大于十六进制“3F”或
  • 大于十六进制“1F”的ASCII值。值的出现EBCDIC“00” - “3F”和ASCII“00” - “1F”无效。

抱歉,如果我的问题重复或混淆

提前致谢

1 个答案:

答案 0 :(得分:0)

您可以按照以下答案中的说明对字符串进行排序: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;
        }
    });

一旦你有一个有序数组,你只需要像我说的那样检查最后一个元素。