子字符串问题-输入字符串的格式不正确

时间:2019-05-09 21:06:27

标签: c# substring

我正在随机生成简单的数学方程式,需要从字符串中获取数字并将其转换为整数,以便可以对其进行加法运算。但是,当我运行程序时,在“ int N1Q1”行上收到“输入字符串的格式不正确”错误。

有什么我想念的吗?是否会有更好的方法从字符串中提取和转换数字?

Question1.Text = Convert.ToString(random.Next(1, 9) + " + " + random.Next(1, 9) + " = ");

string FirstQuestion = Convert.ToString(Question1.Text);

int N1Q1 = Convert.ToInt32(FirstQuestion.Substring(0,1));
int N2Q1 = Convert.ToInt32(FirstQuestion.Substring(5,1));

3 个答案:

答案 0 :(得分:2)

这是另一种处理方法,您可以将每个random.Next()调用都放入其自己的变量中,然后就不必进行转换了。像这样:

int random1 = random.Next(1,9);
int random2 = random.Next(1,9);
Question1.Text = $"{random1} + {random2} = ";

您也不需要将Question1.Text转换为字符串,因为它已经是字符串。另外,使用这种方法,您已经将随机数捕获为变量,那么您就不必将其转换回整数

答案 1 :(得分:0)

看起来您在N2Q1的子字符串中相距一:

def merge_datetime(row):
    date = row['Date']
    time = row['Time']
    return pd.to_datetime(f'{date} {time}')

datetimes = df.apply(merge_datetime, axis=1)

datetimes.values # numpy array

答案 2 :(得分:0)

不要忘了首先声明随机变量,如下所示:

Random random = new Random();

第二秒,您在N2Q1中计算错误,应该如下所示:

int N2Q1 = Convert.ToInt32(FirstQuestion.Substring(4, 1));