【发布时间】:2021-01-23 15:36:56
【问题描述】:
public static void Main(string[] args)
{
Console.WriteLine("Enter string: ");
string st= Console.ReadLine();
Console.WriteLine(Alpha(st));
}
public static string Alpha(string str)
{
int[] nums = new int[str.Length / 2]; // 4 5 2
string num = "";
string nw = "";
string harfler = " ";
string[] harflerr = new string[str.Length / 2]; // A B C
for(int i = 0; i < str.Length; i += 2)
{
harfler += str[i].ToString();
}
for(int i = 1; i < str.Length; i+=2)
{
num += str[i].ToString();
}
for(int i = 0; i < num.Length; i++)
{
nums[i] += num[i];
}
for(int i = 0; i < harflerr.Length; i++)
{
harflerr[i] += harfler[i];
}
for(int i = 0; i < harflerr.Length; i++)
{
for(int j = 0; j < nums[i]; j++)
{
nw += harflerr[i];
}
}
return nw;
}
输出必须是这样的:
"A4B5C2" ➞ "AAAABBBBBCC"
"C2F1E5" ➞ "CCFEEEEE"
"T4S2V2" ➞ "TTTTSSVV"
"A1B2C3D4" ➞ "ABBCCCDDDD"
为什么 nums [i] // 例如在 nums [i] 部分返回多达 4 个//。
【问题讨论】:
-
为什么不使用调试器来单步调试你的代码呢?它将帮助您找到代码中的缺陷。
-
阅读this article 了解调试代码的技巧。
-
当您执行
nums[i] += num[i];时,会将字符'1'的ASCII 值添加到nums[i]。仅仅因为字符恰好是一个数字并不意味着它的处理方式与表示字母的字符有任何不同。 -
harfler的开头有一个空格,因此您将看到该字符输出到屏幕,而不是输入字符串中的第一个字符。