【问题标题】:java string to filter based on particular ascii value基于特定ascii值过滤的java字符串
【发布时间】:2014-02-21 02:04:54
【问题描述】:

在java中怎么做,检查字符串时提示错误

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

对不起,如果我的问题重复或混淆了

提前致谢

【问题讨论】:

  • 你尝试了什么,你卡在哪里了?

标签: java string ascii hex


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-22
    • 1970-01-01
    • 2019-08-16
    • 2018-02-19
    • 1970-01-01
    • 2011-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多