You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java提取指定字符首出现后剩余字符串功能异常排查

问题解决:输出指定字符首次出现后的剩余字符串

你的代码存在几个关键问题,导致无法得到预期结果:

1. 未打印处理后的结果

你在else块中已经计算出了目标字符串,但没有将其输出到控制台,所以看不到最终结果。

2. 字符匹配的严谨性不足

你用String类型存储输入的字符,并用sentence.indexOf(String)查找位置。虽然单个字符的String也能匹配,但如果用户输入多个字符(比如输入"wo"),会导致匹配逻辑不符合“指定单个字符”的需求。更合适的方式是用char类型存储单个字符,并用sentence.indexOf(char)精准查找位置。

3. 变量复用导致语义混乱

你将处理后的结果赋值给了原本存储输入字符的letter变量,这会让变量的含义混淆,建议使用新变量存储结果。

修正后的代码

import java.util.Scanner;

class Program {
   public static void main(String args[]) {
      Scanner sc = new Scanner(System.in);

      System.out.print("Enter a sentence: ");
      String sentence = sc.nextLine();

      System.out.print("Enter a letter: ");
      // 只取输入的第一个字符,确保处理单个字符
      char targetChar = sc.next().charAt(0);

      int charIndex = sentence.indexOf(targetChar);
      if (charIndex == -1) {
         System.out.println("The letter does not exist in the sentence.");
      } else {
         String result = sentence.substring(charIndex + 1);
         System.out.println(result);
      }

      sc.close();
   }
}

测试验证

输入句子:How are you?
输入字符:a
输出:re you?

输入句子:hello world
输入字符:w
输出:orld

额外说明

  • 使用sc.next().charAt(0)可以确保只获取输入的第一个字符,避免用户误输入多字符的情况。
  • 单独用charIndex存储查找结果,避免重复调用indexOf方法,提升代码效率。

内容的提问来源于stack exchange,提问作者Sudharshan S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 00:35:29