当前位置: 首页 > 知识库问答 >
问题:

打印删除了第一个“c”、“c”、“d”或“d”的aLine

卫开济
2023-03-14

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

我已经实现了删除“c”。但是,如果“c”之前有“d”,它仍然会删除“c”。我已经尝试建立字母的索引。我已经尝试使用if语句以及嵌套的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的第一个实例,然后用删除的字符打印字符串。请告知。我不知道如何处理这个问题。

共有3个答案

司马辉
2023-03-14

另一个更简单的解决方案是按顺序检查字符串的每个字符,一旦找到一个满足其中一个条件的字符,就执行该操作并中断。为此,请不要在开始时使用indexOf

范瀚昂
2023-03-14

你必须比较哪一个是第一个。

让我们说你的话是“DCvsMarvel”

在这种情况下,D为0,C为1。

因此代替if(c

它应该包括条件

如果(c

希望有帮助

萧自珍
2023-03-14

我会保持简单:

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语句是print,而不是println
  2. 第二个子字符串使用只有开始索引的形式
  3. 打印字符串的两部分后使用println
 类似资料:
  • 本文向大家介绍在数组中找到最大的d,使得C ++中的a + b + c = d,包括了在数组中找到最大的d,使得C ++中的a + b + c = d的使用技巧和注意事项,需要的朋友参考一下 假设我们有一组整数。我们必须找到一个数字“ d”,其中d = a + b + c,并且必须最大化(a + b + c),所有a,b,c和d都存在于集合中。该集合将至少容纳一个元素,最多可容纳1000个元素。每

  • 本文向大家介绍在数组中找到四个元素a,b,c和d,以便在C ++中a + b = c + d,包括了在数组中找到四个元素a,b,c和d,以便在C ++中a + b = c + d的使用技巧和注意事项,需要的朋友参考一下 假设我们有一个整数列表。我们的任务是找到四个不同的整数,分别为(a,b)和(c,d)两对,这样a + b = c + d。如果有多个答案,则仅打印一个。假设数组元素像:A = [7

  • 四道编程题 第一道签到题 判断字符是否交替出现(例如ABA A就是交替出现了一次) 求满足交替次数大于等于N的字符的个数 唯一一个需要注意到的点是根据题意 如果没有任何一个字符满足大于等于N 答案不是0而是1(答案至少为1) 第二道好像是力扣原题 求最小覆盖子串 滑动窗口+哈希表 第三题判断字符串t是否是字符串s的子序列(假如t是abc s中需要有满足*a*b*c*的子串) 双指针 s,t 满足s

  • 问题内容: 在SO 904928问题上(Python strftime-日期前无0?),Ryan回答: 实际上,我遇到了同样的问题,并且我意识到,如果在%和字母之间添加连字符,则可以删除前导零。 例如,%Y /%-m /%-d。 我遇到了同样的问题,但这是一个很好的解决方案,但是为什么会这样呢? 我找不到任何有关的文档?-> python datetime docs / python字符串操作 看

  • 本文向大家介绍解决scanf_s输入%d%c%d格式错误的问题,包括了解决scanf_s输入%d%c%d格式错误的问题的使用技巧和注意事项,需要的朋友参考一下 例题: 定义变量a,b,c,输入1+2,结果a=1,b=+,c=2 错误实例: 乍一看,没啥问题,但是一运行输入就会报错。 解决方案: 1、使用scanf,上边的代码就没问题 2、如果使用scanf_s,就要加上输入长度,如下 scanf_

  • 任务给你一个排序的整数数组arr。它包含几个唯一的整数(负、正或零)。 您的任务是找到最大的d,使得a b c=d,其中a、b、c和d是arr的不同元素。如果没有找到这样的元素d,则返回null。 例子: 对于arr=[2,3,5,7,12],输出应该是12(这个数组正确传递了我的函数) 对于arr=[-100,-1,0,7,101],输出应该是0(这个不通过) 我可以进行正数检查,但我的函数因负