.net 格式而不是子字符串

.net 格式而不是子字符串,.net,string,textbox,.net,String,Textbox,我有一个类似6348725的数字,显示为String,但我只想用String.Format显示最后6位数字(348725)。有办法做到这一点吗? 我知道,有子字符串函数(或Int计算和%(VB中的Mod)),但我想通过用户从文本框输入来使用FormatString。我不明白为什么需要字符串。Format但你可以像这样使用它 string s = "6348725"; TextBox1.Text = s.Substring(s.Length - 6)); // Textbox will be 34

我有一个类似6348725的数字,显示为String,但我只想用String.Format显示最后6位数字(348725)。有办法做到这一点吗?
我知道,有子字符串函数(或Int计算和%(VB中的Mod)),但我想通过用户从文本框输入来使用FormatString。

我不明白为什么需要
字符串。Format
但你可以像这样使用它

string s = "6348725";
TextBox1.Text = s.Substring(s.Length - 6)); // Textbox will be 348725
好吧,我只想展示一种没有子串的肮脏方式

string s = "6348725";
var array = new List<char>();
if (s.Length > 6)
{
    for (int i = s.Length - 6; i < s.Length; i++)
    {
        array.Add(s[i]);
    }
}

Console.WriteLine(string.Join("", array)); // 348725
string s=“6348725”;
var数组=新列表();
如果(s.长度>6)
{
对于(int i=s.长度-6;i
一般来说,你可以像索内尔·格努尔所说的那样做

string s = "6348725";
TextBox1.Text = string.Format("Your number: {0}", s.Substring(s.Length-6)

如果您需要String.Format的完整功能,并且可以替换String.Format方法,请查看SmartFormat.NET:


它声称与String.Format参数兼容,虽然它没有您需要的功能,但可以很容易地修改为trim和pad。(请参阅Extensions/DefaultFormatter.cs第63至84行)

这是家庭作业吗?我看不出有什么理由会有这样一个奇怪的要求。当你在格式说明符中输入一个宽度时,它是用来填充值的。我想不出一个原因,为什么我想在显示时隐式地、无声地删除信息。这样的需要会向我表明,在实现的早期有一些可怕的错误。像ubsch一样,我需要在不使用子字符串的情况下执行此操作,不幸的是,我认为这是不可能的。@apc为什么你认为这不可能?我添加了一个不带
子字符串的示例
@Downvoter care,至少要注释一下,这样我就可以看出我可能错在哪里了?仅使用String.Format无法解决问题,这是不可能的,因此没有答案。例如,用户可以在应用程序中配置某些显示数据的格式。在我的案例中,一个特定的客户需要显示一年中的前3个数字(例如201),然后是另一个值{0,3:yyyy}{1}。看起来它可能会工作,但不是作为3个唯一的焊盘,也不是子字符串/修剪。