JAVA在线笔试编程时测试结果显示非法越界的解决方法

来源:互联网 发布:专科网络教育 档案 编辑:程序博客网 时间:2024/06/05 20:57

今天晚上做了一家公司的在线笔试,笔试要求说可以在本地IDE编写后复制到网页上,但是我在本地运行正确后复制到网页上测试运行时总是说我非法越界。其实是由于在线笔试给了很多数据,和OJ是类似的。所以我们在写的时候循环获取控制台的输入时的判断条件写得不对Scanner提供了一个方法专门用于判断是否还有输入:scanner.hasNext(),

这里有一个例子:

import java.util.*;public class Helli {public static void main(String[] args) {// TODO Auto-generated method stubScanner scanner=new Scanner(System.in);int a,b;String str="";//str=scanner.nextLine();while(scanner.hasNext()){str=scanner.nextLine();String[] s=new String[2];s=str.split(",");a=Integer.parseInt(s[0]);b=Integer.parseInt(s[1]);if(a<1||a>7000||b<1||b>7000){System.out.println(-1);}else{char[] s1=new char[5];char[] s2=new char[5];int i,j=0;for(i=0;i<s[0].length();i++){s1[i]=s[0].charAt(s[0].length()-i-1);}for(j=0;j<s[1].length();j++){s2[j]=s[1].charAt(s[1].length()-j-1);}String str1="";String str2="";for(int x=0;x<i;x++){str1+=s1[x];}for(int y=0;y<j;y++){str2+=s2[y];}a=Integer.parseInt(str1);b=Integer.parseInt(str2);System.out.println(a+b);}//str=scanner.nextLine();}System.out.println("yes");}}


0 0