2016-01-22 46 views
0

我需要每个人的相互vb.net

例如替换丰富的文本框两个字符串替换两个字符串:

填充:12px的的22px 33px 0像素;

我想 “” 和 “” 取代 “” 为 “”

是这样一个:

填充:12px的0px 33px 22px;

注:这两个数字并不总是22 & 0,他们是变量

+0

是字符串的格式总是相同的? –

+0

你到目前为止尝试过什么吗? – Alexei

+0

是的,它总是这样,是的,我已经尝试了这么多代码 –

回答

0

我找到了!

感谢Markus代码,我用substring修改了一段代码后就完成了他的代码,它完美的工作!

For Each lne In RichTextBox1.Lines 
     If lne.Contains("padding") Then 
      Dim code As String = lne 
      Dim del As String = code.Substring(code.IndexOf("padding") + 8) 
      Dim padding As String = del 
      Dim split As List(Of String) = padding.Split(" "c).ToList 'split padding String by spaces 
      Dim nd As String = split(2) 
      Dim rth As String = split(4) 
      split(2) = rth 'replace 22px with 0px 
      split(4) = nd 'replace 0px; with 22px; 
      Dim newPadding As String = String.Join(" "c, split.ToArray) 
     End If 
    Next 
0

,这可能让你开始:

Dim padding As String = "padding: 12px 22px 33px 0px;" 

Dim split As List(Of String) = padding.Split(" "c).ToList 'split padding String by spaces 

split(2) = "0px" 'replace 22px with 0px 
split(4) = "22px;" 'replace 0px; with 22px; 

Dim newPadding As String = String.Join(" "c, split.ToArray) 

Console.WriteLine(newPadding) 
+0

该代码只适用于数字“22和0”..但数字12,22,33和0并不总是相同的 他们每次都会改变 –

+0

这就是为什么我说它会让你开始,所以如果你交换他们,你不得不考虑代码写作平台 – Markus

0

下面的交换方法,将工作仅当您输入的字符串格式总是相同。每个项目之间应有相同数量的空格,字符串中的项目数量限制为5

Dim input As String = "padding: 12px 22px 33px 0px;" 
Dim arinput As String() = input.Split(" ") 
Dim val As String 
val = arinput(2) 
arinput(2) = arinput(4).ToString.Replace(";", "") 
arinput(4) = val & ";" 
Dim output As String = String.Join(" ", arinput) 

Demo

+1

“;”现在是在错误的地方 – Markus

+0

@Markus是的,你是对的我只是错过了它 –