m0_58525237 2021-05-23 22:17 采纳率: 50%
浏览 262
已采纳

Java编译报错无法取消引用int,请问该如何修改程序?

import java.util.Scanner;
public class Example1 {
	public static void main(String args[]) 
	{
		System.out.println("请输入字符串");
		Scanner scan=new Scanner(System.in);
		String str = scan.next();
		String E1="[\u4e00-\u9fa5]";
        String E2="[a-zA-Z]";

        int countH=0;
        int countE=0;
        char[] arrChar=str.toCharArray();
        String[] arrStr=new String[arrChar.length];

        for (int i=0;i<arrChar.length ;i++ )
            arrStr[i]=String.valueOf(arrChar[i]);

     //请把程序中的“for (String i: arrStr )”改成传统的for语句形式进行调试;

     //(源程序)  for (String i: arrStr ) {
     //               if (i.matches(E1)) {
     //                  countH++;
     //               }
     //               if (i.matches(E2)) {
     //                  countE++;
     //               }
     //            }


	    for (int i=0;i<arrStr.length ;i++ )   //自己只改了for语句开头       
	    {
			if(i.matches(E1))  {
				countH++;
			}
			if(i.matches(E2)) {
				countE++;
			}
	    }
                                                     
     System.out.println("汉字的个数"+countH);
     System.out.println("字母的个数"+countE);
	}
}

希望能有详细的解释,谢谢大家!

  • 写回答

4条回答 默认 最新

  • technologist_30 2021-05-23 22:49
    关注
     for (int i=0;i<arrStr.length ;i++ )   //自己只改了for语句开头       
    	    {
    			if(i.matches(E1))  {
    				countH++;
    			}
    			if(i.matches(E2)) {
    				countE++;
    			}
    	    }
    i只是索引呀,应该要获取值所以改成arrStr[i]
    
    改后代码如下
     for (int i=0;i<arrStr.length ;i++ )   //自己只改了for语句开头       
    	    {
    			if(arrStr[i].matches(E1))  {
    				countH++;
    			}
    			if(arrStr[i].matches(E2)) {
    				countE++;
    			}
    	    }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

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