替换所有大于f的字符

时间:2016-06-12 13:00:43

标签: java string

我通常使用此命令替换一个String中的字符

myString.replace("f", "a").trim()

但是这次我想创建一个Hex字符串,所以我想用字符f替换所有大于a的字符。 是否可以调整此命令?

3 个答案:

答案 0 :(得分:1)

如果您有一个上限字符(我将z作为示例),您可以使用带有replaceAll的正则表达式:

myString = myString.trim().replaceAll("[g-z]", "a");

正则表达式[g-z]表示"任何字符gz包含",有关详细信息,请参阅Pattern

如果您想要不区分大小写的话,您可能需要显式创建正则表达式而不是依赖replaceAll的默认版本:

myString = Pattern.compile("[g-z]", Pattern.CASE_INSENSITIVE)
                  .matcher(myString.trim())
                  .replaceAll("a");

答案 1 :(得分:0)

您可以使用正则表达式来执行此操作 Button btnSimple = (Button) findViewById(R.id.action_about); btnSimple.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(v.getContext(), about.class); startActivityForResult(intent, 0); } }); 将选择表示十六进制数字的字符串中不允许的任何字符。您需要将所有出现的组替换为所需的值。

答案 2 :(得分:0)

您可以迭代字符串中的字符,并将大于f的字符替换为您想要的字符;

StringBuilder newString=new StringBuilder();
        for (int i = 0; i < myString.length(); i++) {
            char c = myString.charAt(i);
            if (c > 'f') {
                newString.append('a');
            } else {
                newString.append(c);
            }
        }