赤赤他欺负我 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 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。