java - 打印 aLine 并删除第一个 'c' 'C' 'd' 或 'D'

标签 java string indexof

我正在尝试打印 aLine,并删除第一个实例 'c' 'C' 'd' 或 'D'。但是,我仅限于使用 String 的 indexOf、charAt、length、compareTo、toUpperCase、toLowerCase、trim、equals、equalsIgnoreCase 和 substring 方法。假设您可以输入您喜欢的任何字符串。

我已经实现了删除“c”。但是,如果“c”之前有“d”,它仍然会删除“c”。我尝试过建立字母的索引。我尝试过使用 if 语句以及 while 和 for 循环中嵌套的 if 语句。结果是一样的。

int c = aLine.indexOf('c');
int upperC = aLine.indexOf('C');
int d = aLine.indexOf('d');
int upperD = aLine.indexOf('D');

for (int i = 0; i < aLine.length(); i++) {
    if (c >= 0 || upperC >= 0 || d >= 0 || upperD >= 0) {
        if (c >= 0) {
            String string1 = aLine.substring(0, c);
            String string2 = aLine.substring(c + 1, length);
            System.out.println(string1 + string2);
            break;
        } else if (upperC >= 0) {
            String string1 = aLine.substring(0, upperC);
            String string2 = aLine.substring(upperC + 1, length);
            System.out.println(string1 + string2);
            break;
        } else if (d >= 0) {
            String string1 = aLine.substring(0, d);
            String string2 = aLine.substring(d + 1, length);
            System.out.println(string1 + string2);
            break;
        } else if (upperD >= 0) {
            String string1 = aLine.substring(0, upperD);
            String string2 = aLine.substring(upperD + 1, length);
            System.out.println(string1 + string2);
            break;
        } else {
            System.out.println("The original String has no leading or trailing whitespace.");
            break;
        }

我试图获取要删除的 c C d 或 D 的第一个实例,然后打印带有删除的字符的字符串。请指教。我不知道如何解决这个问题。

最佳答案

我会保持简单:

for (int i = 0; i < aLine.length(); i++) {
    char c = aLine.charAt(i);
    if (c == 'c' || c == 'C' || c == 'd' || c == 'D') {
        if (i > 0) System.out.print(aLine.substring(0, i));
        if (i+1 < aLine.length()) System.out.print(aLine.substring(i+1));
        System.out.println();
        break;
    }
}

注释:

  1. 前两个打印语句是 print,而不是 println
  2. 第二个子字符串使用只有起始索引的形式
  3. println 在打印字符串的两部分后使用

关于java - 打印 aLine 并删除第一个 'c' 'C' 'd' 或 'D',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57878724/

相关文章:

environment-variables - 删除默认的 jdk 1.7 版本并在 windows 上设置 1.6

java - 项目监听器不起作用

python - 计算字符串中某个子串的重复出现次数

C - 字符串递归

python - 将字符串转换为元组对的序列

java - indexOf() 方法在 ArrayList 中找不到我的字符串

java - 如何使数据库更改导致 Web 客户端 View 的更新

java - 在 JXTree 中搜索

javascript - node.js 如何在字符串中搜索数组中的值

c# - 向后遍历字符串以查找字符或短语