赤赤他欺负我 2021-04-15 20:37 采纳率: 66.7%
浏览 49
已采纳

JAVA初学者关于字符串判断某个值的问题。

这是我编写的一个Java程序,输入一个字符串判断里面有几个A,如图,我的这个程序如果A在最后那么就检测不到位于最后的A,如果A不在最后就可以被检测出来,如图。 AAA输出就是2 AASA输出也是2 AAAS输出也是2  但是AAASSS这种输出就是3。

 

后面我把.length()后面加了1变成.length()+1就正常了AAA就是3 或者把for循环换成下面我注释掉的while循环也是对的

正确的如下

我想知道这是为什么,很疑惑,自己手算手动运行程序.length不加1感觉也可以,但是运行出来就是不对。

  • 写回答

3条回答 默认 最新

  • allway2 2021-04-15 20:55
    关注
    package week6;
    
    import java.util.Scanner;
    
    public class Test_2_2 {
    	public static void main(String[] args) {
    
    		Scanner character = new Scanner(System.in);
    		String str = character.nextLine();
    		int sum = 0;
    		int len = str.length();
    		for (int i = 0; i < len; i++) {
    			if (str.indexOf("A") != -1) {
    				sum++;
    				str = str.substring(str.indexOf("A") + 1);
    				System.out.println(str);
    				System.out.println("i=" + i);
    
    			}
    		}
    		System.out.println(sum);
    	}
    
    }
    

    你的循环终止条件在循环体内部不断变化了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器