2016-01-25 6 views
1

Скажем, у меня есть строка «N4NSD3MKF34MKMKFM53» и я хочу, чтобы умножить строку * 2, чтобы получитьтолько умножать числа в смешанной строке [VB.Net]

N8NSD6MKF68MKMKFM106 Как бы я идти об этом?

+0

Пробовали ли вы что-нибудь? – Serge

+0

Пробовал перемножать строку * 2 – Brandon

+1

Итак, у вас есть код написан. Не могли бы вы поделиться им с нами? – Serge

ответ

3

Хорошо, я мог бы также дать вам решение Regex, пока я здесь. Но я предупреждаю вас не использовать его, если вы не понимаете, что он делает. Никогда не рекомендуется просто копировать и вставлять код, который вы не полностью понимаете.

Dim input As String = "N4NSD3MKF34MKMKFM53" 
Dim output As String = Regex.Replace(
           input, 
           "\d+", 
           Function(x) (Integer.Parse(x.Value) * 2).ToString()) 
0

Вы можете попробовать следующий код:

Public Class Program 
Public Shared Sub Main(args As String()) 

     Const expression As String = "N4NSD3MKF34MKMKFM53" 

     Dim result = MultiplyExpression.Calculate(expression) 
     Console.WriteLine(result) 
    End Sub 
End Class 

Class MultiplyExpression 
    Public Shared Function Calculate(expression As String) As String 
     Dim result = String.Empty 
     For Each c In expression 
      Dim num As Integer 
      If Int32.TryParse(c.ToString(), num) Then 
       result += (num * 2).ToString() 
      Else 
       result += c 
      End If 
     Next 

     Return result 
    End Function 
End Class 

Выход: N8NSD6MKF68MKMKFM106

Смежные вопросы