Разбить строку, которая принимает строковые и целочисленные значения - PullRequest
0 голосов
/ 15 февраля 2011

Я хочу разбить строку, которая принимает как строковые, так и целочисленные значения, например (Cmp_12).Я хочу использовать их отдельно.

Ответы [ 4 ]

2 голосов
/ 15 февраля 2011

Если есть известный Знак между двумя пунктами, которые вы хотите, то вы можете использовать

Dim myString as string = "Item1_Item2"
Dim MyItems() as string = split(myString,"_")
Dim ItemA as string = MyItems(0)
Dim ItemB as string = MyItems(1)

Это один из способов получить два ваших предмета в строку
Если вы знаете, что это за Предметы, вы можете использовать

Cint(MyItems(x))
Cbool(MyItems(x))

Или какое конвертирование тебе нравится
Я действительно не знаю, близок ли я к вашему вопросу

1 голос
/ 15 февраля 2011

Вы можете использовать Регулярные выражения

Для чисел: [\d]+ будет соответствовать одной или нескольким цифрам.

Для текста: [a-z]+ будет соответствовать одномуили больше букв в диапазоне az.Вы можете использовать оператор /i, чтобы сделать этот бит нечувствительным к регистру.

Выполнение вызова .match для каждой строки дважды (сначала для числового теста, а затем для текстового теста) даст вам то, что выпосле.Есть более элегантный способ сделать это с помощью matchgroups, но это поможет вам начать.

Попробуйте этот интерактивный тестер регулярных выражений - он очень полезен: http://derekslager.com/blog/posts/2007/09/a-better-dotnet-regular-expression-tester.ashx

0 голосов
/ 15 февраля 2011

SQL Server версия с использованием слева , справа и charindex .

declare @s varchar(50) = 'Cmp_12'

select  
  left(@s, charindex('_', @s, 0)-1),
  right(@s, len(@s)-charindex('_', @s, 0))
0 голосов
/ 15 февраля 2011

с использованием split , например,

var str = "camp_12";
var str_array = str.split("_");
alert(str_array[0]+" "+str_array[1]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...