Java:将字符串解析为int并计算总和
首先,我想说,我不只是想找人给我这个问题的答案,我是一个初学者程序员,我只是想尽可能多地学习。如果您能对我的代码提出批评,并友好地向正确的方向推进,我们将不胜感激!真正让我困惑的是我的stringParser方法。我使用这个方法循环遍历字符串,挑出数字并将它们存储在一个新的字符串中进行解析。让我困惑的是,我如何才能将这些数字相加?代码如下:Java:将字符串解析为int并计算总和,java,string,parsing,Java,String,Parsing,首先,我想说,我不只是想找人给我这个问题的答案,我是一个初学者程序员,我只是想尽可能多地学习。如果您能对我的代码提出批评,并友好地向正确的方向推进,我们将不胜感激!真正让我困惑的是我的stringParser方法。我使用这个方法循环遍历字符串,挑出数字并将它们存储在一个新的字符串中进行解析。让我困惑的是,我如何才能将这些数字相加?代码如下: public static int stringParser(String parsee,int parsed) { int indexOfStri
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;
}
publicstaticintstringparser(stringparsee,intparsed)
{
int indexOfString=parsee.indexOf(“=”)//搜索=符号,因为必须有一个
字符串parse2=“”;
int[]新数组;
String subStringParse=parsee.substring(0,indexOfString);//用于分割字符串的子字符串,该子字符串从0索引到第一次出现的=
对于(inti=0;i,根据我的猜测,您需要解析类似于‘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;
int索引=0;
对于(int i=0;iTry
输出
您可以提供一个示例输入字符串吗?感谢您的回复!示例用户输入字符串类似于:1+2=3+4=5+-6=。输出将是:SUM=3 SUM=7 SUM=-1。目标是计算每个“=”符号前的值的和。感谢您的回复!我实际上是在尝试使用数组,与您使用的方法相同,但我键入了它在parsed下面的if语句中,这可能会把它搞砸。如果您使用的是任何IDE,那么调试代码是发现错误的最佳选择。谢谢您的回答!我从未见过在for循环中使用过“:”,它是否与“;”具有相同的功能?它对每个循环的调用更详细
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