自动增加字符串的最后一个整数值
Autoincrement a string's last integer value
我正在使用 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
b 应具有 "test 2" 的值或递增的最终值
核心问题是您使用的是 Substring(0, a.Length - 2)
,其中 2
是一个常数,即使位数增加也不会增加。
如果项目名称和编号之间有 space,您可以使用 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)
' ... '
如果在您的情况下投影是“描述值”,那么可以使用如下拆分功能轻松完成:
var = var + 1
Dim st As String
st = a.Split(" ")(0)
st = st & " " & var
b = st
我正在使用 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
b 应具有 "test 2" 的值或递增的最终值
核心问题是您使用的是 Substring(0, a.Length - 2)
,其中 2
是一个常数,即使位数增加也不会增加。
如果项目名称和编号之间有 space,您可以使用 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)
' ... '
如果在您的情况下投影是“描述值”,那么可以使用如下拆分功能轻松完成:
var = var + 1
Dim st As String
st = a.Split(" ")(0)
st = st & " " & var
b = st