首先,我想首先说我不仅仅是在寻找某人给我这个问题的答案,我是一名初学程序员,我只是想尽可能多地学习。对我的代码的批评和对正确方向的友好推动将是非常感谢!让我感到困惑的是我的stringParser方法。我使用这种方法循环遍历字符串,挑选数字并将它们存储在要解析的新字符串中。令我困惑的是我如何将这些数字加在一起?这是代码:
public static int stringParser(String parsee,int parsed)
{
int indexOfString = parsee.indexOf("="); //Searches for an = sign since there has to be one
String parsee2 = "";
int [] newArray;
String subStringParse = parsee.substring(0,indexOfString); //Substring made to divide string, this one is from 0 index to 1st occurence of =
for(int i = 0;i<subStringParse.length();i++)
{
if(Character.isDigit(subStringParse.charAt(i))) //if the value is a number it is stored in a new string then parsed.
{
parsee2+= subStringParse.charAt(i);
parsed = Integer.parseInt(parsee2);
}
} return parsed;
}
public static int sumInts(int a,int storedSums)
{
//a = new int[20];
for(int i=0;i<a;i++) //loops through parsed string from stringParser
{
storedSums += a; //creates a new value calculating sum
}
return storedSums;
}
答案 0 :(得分:0)
根据我的猜测,你想解析像这样的东西`12 + 34 ='。
如果我是对的,那么你的for循环是完全错误的。它将仅返回34作为整数值。您可以为此调试代码。
我建议你这样:
int index = 0;
for(int i = 0;i<subStringParse.length();i++)
{
if(Character.isDigit(subStringParse.charAt(i))) //if the value is a number it is stored in a new string then parsed.
{
parsee2+= subStringParse.charAt(i);
parsed = Integer.parseInt(parsee2);
}
newArray[index++] = parsed; //make sure you initialize newArray.
}
return newArray;
答案 1 :(得分:0)
尝试,
String parsee = "12+13 = 34+45 = 45+-45";
int value = 0;
String parsed = "";
for(String exp : parsee.split("=")){
for(String val : exp.trim().split("\\+")){
value+=Integer.parseInt(val);
}
parsed+=" SUM = "+value;
value = 0;
}
System.out.println(parsed);
输出
SUM = 25 SUM = 79 SUM = 0