在字符串中的某个字符后添加一个space(VB代码)

Adding a space in a String after a certain character(VB Code)

大家好。

    Dim txt1 As Double = Convert.ToDouble(TextBox1.Text) / 100
    Dim txt2 As Double = Convert.ToDouble(TextBox2.Text)
    Dim txt3 As Double = Convert.ToDouble(TextBox3.Text)
    Dim txtResult As Double = Convert.ToDouble(TextBox4.Text)

    Dim result As Double = txt1 * txt2 * txt3
    TextBox4.Text = result

如您所见,我得到的结果取决于用户输入的内容。所以我必须在某个字符后添加一个 space。 Textbox14.text(0) <--- 在此之后我想要我的 space。这样当值大于 999 后应该输入 1 000 而不是 1000。非常感谢您提供任何有用的帮助,我真的到处都找过了,我就是找不到任何东西。

你说的是组分隔符。 Custom Numeric Format Strings

您可以使用 .ToString() 方法并在格式中定义组分隔符。

TextBox4.Text = result.ToString("0,0.000")

将根据本地系统的 language/region 设置使用不同的分隔符。

您可以手动定义自定义分隔符

var cultureInfo = new System.Globalization.CultureInfo("en-US");
var numberInfo = cultureInfo.NumberFormat;
numberInfo.NumberGroupSeparator = " ";

TextBox4.Text = result.ToString("0,0.000", numberInfo)   

如果我没看错,你希望每 3 个字符一个 space,对吗? 像 1 000 000? 试试这个:

Dim result As String, str As String, ret As String
Dim i As Integer
Dim arr As Char()
'your text to space 
result = "10000000"
'reverte so we start with the end
result = StrReverse(result)
i = 0
ret = ""
' make a char array which each char is an own array element
arr = result.Take(result.Length).ToArray
'iterate through all elements
For Each str In arr
    ' skip the first element . 
    ' only add a space every 3 elements 
    If (i <> 0) And (i Mod 3 = 0) Then
        ret = ret + " "
    End If
    ret = ret + str
    i = i + 1
Next
' revers again the output
ret = StrReverse(ret)
MsgBox(ret)