我是靠谱客的博主 孝顺红酒,这篇文章主要介绍substring数组越界_请检查是否存在数组越界非法访问等情况,现在分享给大家,希望可以做个参考。

请检查是否存在数组越界非法访问等情况

case通过率为90.00%

请各位大牛帮忙看下,下面代码为什么会提示 “请检查是否存在数组越界非法访问等情况 case通过率为90.00%”。

代码功能为算式计算,输入格式为:

(OP P1 P2)

其中,P1和P2为整数或者算式,OP表示计算操作,支持add(加)、sub(减)、mul(乘)、div(除)操作。例如:

(add 3 -7)=-4,(add 3 (add 3 -7))=-1;

(sub 3 -7)=10,(sub (sub 3 -7) -7)=17;

(mul 3 -7)=-21,(mul 3 (mul 3 -7))=63;

(div 7 3)=2,(div 7 (div 7 3))=3。

代码如下

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner scanner =null;

String input =null;

int result =0;

scanner =new Scanner(System.in);

while(scanner.hasNextLine()) {

input = scanner.nextLine();

result = operate(input);

System.out.println(result);

}

scanner.close();

}

private static int operate(String order) {

int result =0;

int paraFirst =0, paraSecond =0;

int splitIndexFirst = -1, splitIndexSecond = -1;

String[] orderArray =null;

orderArray =newString[3];

if(order !=null&& order.startsWith("(") && order.endsWith(")")){

order = order.substring(1, order.length()-1);

splitIndexFirst = order.indexOf(" ");

orderArray[0] = order.substring(0, splitIndexFirst);

order = order.substring(splitIndexFirst+1);

splitIndexSecond = lengthEle(order);

orderArray[1] = order.substring(0, splitIndexSecond);

orderArray[2] = order.substring(splitIndexSecond+1);

if(orderArray[1] !=null&& orderArray[1].startsWith("(")){

paraFirst = operate(orderArray[1]);

}else{

paraFirst = Integer.valueOf(orderArray[1]);

}

if(orderArray[2] !=null&& orderArray[2].startsWith("(")){

paraSecond = operate(orderArray[2]);

}else{

paraSecond = Integer.valueOf(orderArray[2]);

}

if("add".equalsIgnoreCase(orderArray[0])){

result = paraFirst + paraSecond;

}else if("sub".equalsIgnoreCase(orderArray[0])){

result = paraFirst - paraSecond;

}else if("mul".equalsIgnoreCase(orderArray[0])){

result = paraFirst * paraSecond;

}else if("div".equalsIgnoreCase(orderArray[0])){

result = paraFirst / paraSecond;

}

}

return result;

}

private static int lengthEle(String data) {

int result = -1;

int dataLen = -1, deep =0;

boolean flag =true;

char[] dataArray =null;

if(data !=null){

dataArray = data.toCharArray();

dataLen = dataArray.length;

if(data.startsWith("(")){

for(int index =0; flag && index < dataLen; index++){

if("(".equalsIgnoreCase(String.valueOf(dataArray[index]))){

deep++;

}else if(")".equalsIgnoreCase(String.valueOf(dataArray[index]))){

deep--;

}

if(deep ==0){

result = index+1;

flag =false;

}

}

}else{

for(int index =0; flag && index < dataLen; index++){

if(" ".equalsIgnoreCase(String.valueOf(dataArray[index]))){

result = index;

flag =false;

}

}

}

}

return result;

}

}

最后

以上就是孝顺红酒最近收集整理的关于substring数组越界_请检查是否存在数组越界非法访问等情况的全部内容,更多相关substring数组越界_请检查是否存在数组越界非法访问等情况内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部