【发布时间】:2020-07-27 11:07:51
【问题描述】:
我需要创建一个接收一串数字的方法 - 例如,174709580098747434。 然后需要将其格式化为三个块并以数组的形式返回 - 例如,{174, 709, 580, 098,747,434}。
这是我目前所拥有的。我不认为这是在做正确的工作。如果我有一个非常大的数字,它也不会有用。
我对 C# 很陌生,只是一个初学者!
using System;
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
string ques = "17470958834";
Console.WriteLine(Chunk(ques));
}
public static string Chunk(string num)
{
// long inInt = Convert.ToInt64(num);
string ans = "";
for (int i = 0; i < num.Length; i += 3)
{
if (i == 2)
{
ans.Insert(2, "-");
}
else if (i == 5)
{
ans.Insert(5, "-");
}
else if (i == 8)
{
ans.Insert(8, "-");
}
else if (i == 11)
{
ans.Insert(11, "-");
}
}
return ans;
}
}
}
【问题讨论】:
-
你想得到字节而不是字符串:ulong input = 174709580098747434; byte[] 输出 = BitConverter.GetBytes(input);
-
OP:您的
if子句永远不会实现,因为您的for将迭代i为 0, 3, 6, 9, ... -
如果输入字符串的长度不能被3整除,应该输出什么?
-
输入12应该是什么结果? 1234? 12.345? -1234? 0012?
-
"我对 C# 很陌生,只是一个初学者!"如果这是真的,那么我强烈建议不要使用 Orel 发布的解决方案。你的练习是为了一个简单的目的而设计的:即强迫你经历一个“痛苦的”过程,通过问题和可能的算法来思考自己。我建议您先尝试用笔和纸解决这个问题。用人类语言写下算法,然后尝试将其翻译成代码。你已经解决了几乎所有的问题。
标签: c# string-parsing