【问题标题】:How to substring elements as 2 groups如何将元素子串为 2 个组
【发布时间】:2020-06-27 01:14:04
【问题描述】:

我正在尝试从头开始进行 sqrt 操作。我能够从一个字符串中提取两个元素,但之后我就卡住了。

int number = 1234 , the_two_numbers;
string z = Convert.ToString(number);
int x = z.Length;
for(int i =0 ; i < x ; i++){
  if(i % 2 == 0){
    the_two_numers = Convert.toInt32(z.Substring(i , i+ 1));
  }
}

如何将the_two_numbers 的值设为12 / 24

如果我在途中犯了任何其他错误,请忽略它们;我是新手。我的程序的其余部分运行良好:)

【问题讨论】:

  • 您好,欢迎来到 Stack Overflow。你能帮我理解你的代码的目的吗?根据代码本身,我假设您想要提取偶数索引数字(在本例中为13)并将它们连接成存储在the_two_numbers 变量中的新数字。也就是说,根据您的解释,听起来您想要将 odd 索引数字(在本例中为 24)存储为另一个变量,或者作为数组中的一个条目?对吗?

标签: c# substring


【解决方案1】:

假设您想根据奇数和偶数索引将其拆分为两个不同的数字(即测试值中的 1324),您的代码存在三个问题:

  1. int 中只能存储一个号码;您需要一个 int[] 来存储两个号码;
  2. 您当前覆盖数字的前一个值,而不是连接它;
  3. Substring()的第二个参数是开始索引后要拉取的字符数,所以应该是1而不是i+1

要解决这些问题,您可能需要类似以下内容:

var number            = 1234;
var the_two_numbers   = new int[2];
var z                 = Convert.ToString(number);

for (int i=0; i<z.Length; i++) 
{
  the_two_numbers[i%2] = Convert.ToInt32(the_two_numbers[i%2].ToString() + z.Substring(i, 1));
}

注意以下几点:

  1. 我将the_two_numbers 设为数组而不是int
  2. 我没有有条件地排除奇数索引,而是使用它来确定要写入the_two_numbers 的哪个索引([i%2]);和
  3. 我没有只是将当前索引处的值设置为变量,而是将其连接到任何以前的值。

the_two_numbers 建立为数组后,您可以使用the_two_numbers[0] 检索第一个值(13),使用the_two_numbers[1] 检索第二个值(24)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-19
    • 1970-01-01
    • 2021-04-15
    • 1970-01-01
    • 2018-07-14
    • 2022-07-12
    • 1970-01-01
    • 2016-06-09
    相关资源
    最近更新 更多