帮我看看这段java代码错在哪里了,while语句哪里不对吗?

如题所述

//代码逻辑有问题
//用下标取数据时首先得判断你的下标是否有效
//输入的24是字符串
//拆分为字符就是'2' '4'对应的ASCII码就是50 52
//所以你的while循环循环到第二次的时候就越界了
//
//还有 写代码注意格式下
//乱糟糟的都在一团 都没法看了

package org.homework;

import java.util.regex.*;

import java.util.Scanner;

public class Evens {
    public Evens() {}
    
    public static void main(String[] args) {
        Scanner reader = new Scanner(System.in);
        String regx = "[02468]{1}";//匹配一位偶数
        Pattern p = Pattern.compile(regx);
        Matcher m;
        String line;
        int counts = 0;
        System.out.println("Please Enter A Line Of Numbers:");
        
        while (reader.hasNextLine()) {
            line = reader.nextLine();
            m = p.matcher(line);
            while (m.find()) {
                counts++;
            }
            System.out.println("This Line Has "+ counts +"Evens");
            counts = 0;
        }
    }
}

追问

为什么会越界啊,不好意思我是新手。。。。。。

追答

我上面给出的答案里已经说明了
你对照着你的代码再看看想想吧

温馨提示:内容为网友见解,仅供参考
无其他回答

这段JAVA代码哪里错了?
答案很简单,你的input只有一个行数据,input.hasNext()返回的是false 不信你自己打印一下。根本没有进入while语句当中

这个java代码哪里不对啊 Exception in thread "main" java.lang.NumberF...
while((temp = inputStream.readLine())!=null){ 多了一个“;”号啊 import java.io.BufferedReader;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.io.PrintWriter;\/\/public class IOLianXi { public static v...

帮我看一段java代码,谢谢!!
你的第二个写法 之所以报错是因为你最后一次读取的数据 越位了 你仔细考虑一下while的最后一次循环 你写入文件了 然后你又往下读取了512字节 当时文件已经结束了 没有下一个512给你读了 你猜会怎么样?

50分 求JAVA帮我找错误
你看看这样改了对不对。。。主要问题大概是没有做到“同时”分一半 public class Try { public static void main(String[] args) { int a[] = { 10, 2, 8, 22, 16, 4, 10, 6, 14, 20 };int sum = 0;int x = 0;while (x != 9) { x = 0;for (int i = 0; i < 10...

(Java)为什么就算输入回车,while循环内还是会执行一次?
楼上说的不对,字符'\\n'根据ASCII码表可知相当于十进制数10:回到你的代码,代码的意思是把输入值赋值给a,然后判断a与'\\n'是否相等,如果不相等就输出hello。为了更好地看出程序的运行情况,我给你加了点“料”:输入12,程序运行结果为:好问题来了,为什么是这样的结果,记住,read方法返回的是...

java这段代码为什么报错
你这个代码没错,可能是你eclipse的配置问题,不知道你的eclipse版本是什么。把鼠标放到前面的红点上,看看提示什么信息。这个1.8的特性可能eclipse判断destElement必须是final的。其实不需要。跟你的eclipse可能有关系

请大神帮我看看这个归并排序错在哪里???
1、错误在于递归调用中使用的while错误使用和部分逻辑不严格。2、方法mergeSort方法在自身方法体中被调用是典型的递归用法,递归调用包含类似while的功能。B部分的while因为没有终结限制(n没有递减)造成了程序的死循环。给方法应在A出添加数组返回值,去掉B处的while代之以if(a<2){return a}的终结...

请帮我看看这段VBA代码,错在哪里?
大哥,你太厉害了,我服你了,你看你的第二段代码,你直接给num付值1000,又直接让caip=caip &num 能不等于1000吗?而且1000根本就不是正确答案,应该是因为999,因为Application.WorksheetFunction.IsError(Application.WorksheetFunction.Find("\\00\\", a1)) 的返回值是false,你应该在这句前面再加上一句on ...

帮我看看我的源代码错在哪里?
语法都有错误 DATA SEGMENT ERADE DB 50 DUP(?)RANK DB 100 DUP(?)X1 DB 'please input the numbers of student:$'X2 DB 'please input the schoolnumbers of student one by one:$'HC DB 0DH,0AH,'$';0DH回车,0AH换行,$字符串结束 DATA ENDS STACK SEGMENT PARA STACK'STACK'DB ...

下面一代java代码,运行时出现如图错误,不知怎么回事。
你的类文件放置的位置不对 ,程序没问题,我运行了,你的类应该放在 D:\/KuGou\/com\/zzk文件夹里面,然后再用你的命令运行

相似回答