2015-01-06 55 views
0

我正在使用vb.net并从mysql数据库读取一个字符串。现在该字符串包含"test 1"。我想通过值1递增最后一位数字(1)。我以某种方式使用了字符串长度并解决了它,但它仅适用于字符串高达"test 10",然后它会不断添加空格,例如:"test 13"等等。我只想自动增加字符串,如"test 20""test 100"。我该怎么做?自动增加字符串的最后一个整数值

这是我使用的代码:

If reader2.Read Then 
    var = reader2.GetInt64("version") 
    a = reader2.GetString("project_id") 
    location = reader2.GetString("location") 
    governorate = reader2.GetString("governorate") 
    memo = reader2.GetString("memo") 
    title = reader2.GetString("project_title") 

    var = var + 1 
    Dim st As String 
    st = a.Substring(0, a.Length - 2) 

    st = st & " " & var 

    b = st 

乙方应本着“测试2”的值或增加终值

+0

'version'总是'project_id'结尾的数字吗?我建议使用比var更多的变量名称来代替'version','a'代替'project_id'和'st'代替变量。 –

+0

是的版本是结束。我肯定会更改变量名称,谢谢你的提升:)。但我该如何增加价值?空格正在被添加,只要数量增加超过10个。 – Smit

回答

1

如果您案例投影是“描述值”,那么它很容易做到像下面这样的分割功能:

var = var + 1 
Dim st As String 
st = a.Split(" ")(0) 
st = st & " " & var 

b = st 
+0

好吧这个方法解决了我的问题,非常感谢:)干杯:) – Smit

+0

@Smit请接受答案(点击旁边的复选标记) – djv

0

的核心问题是,你正在使用Substring(0, a.Length - 2),其中2是即使位数增加也不会增加的常数值。

如果项目名称和数量之间的空间,你可以使用String.Split代替:

Dim version = reader2.GetInt64("version") 
Dim projectID = reader2.GetString("project_id") 
Dim token As String() = projectID.Split() ' splits by white-space characters ' 
Dim projectName As String = token(0).Trim() 
Dim result As String = String.Format("{0} {1}", projectName, version + 1) 

如果你想使用Substring而不是Split

' ... ' 
Dim projectName = projectID 
Dim spaceIndex As Int32 = projectName.IndexOf(" ") 
If spaceIndex >= 0 Then projectName = projectName.Substring(0, spaceIndex) 
' ... ' 
+0

非常感谢我已经尝试了两种方法,他们正在努力欢呼:) – Smit

相关问题