2017-09-14 23 views
0

我有一組字符串,它們都具有相同的模式:「瓊斯,鮑勃 - 無時間」,它是姓氏,逗號,名字,然後是連字符而沒有時間。我想刪除姓氏和名字並將它們保存到變量中。我試過了:替換方法不起作用?

dim emp_name as string = "Jones, Bob - NO TIME" 
emp_name = Replace(emp_name, "- NO TIME", "") 
dim _Name as string() = emp_name.Split(",") 
Dim first_Name as string = Name(0) 
Dim last_Name as string = Name(1) 

由於某些原因,替換並沒有擺脫「 - 沒有時間」,我不知道爲什麼。

+0

爲什麼不使用'.NET'方法'String.Replace',而是使用舊的VB函數'Replace'? 這可以肯定地工作: 'emp_name = emp_name.Replace(「 - 沒有時間」,「」)' –

+0

你編碼甚至編譯?你能分享'Replace'方法的代碼嗎? –

+0

你的代碼示例對我來說工作得很好。除了最後兩行應該使用_Name而不是Name的事實。你的實際代碼是什麼? –

回答

1

這是_Name不是Name,我猜Name是你的班級的不同屬性。

爲什麼你不使用.NET方法String.Replace但舊的VB函數Replace

不過既然你想在年底將令牌,你不希望替換每一次出現:

Dim empName as string = "Jones, Bob - NO TIME" 
Dim index = empName.LastIndexOf("- NO TIME") 
empName = If(index = -1, empName, empName.Remove(index)) 
Dim tokens = empName.Split(","c) 
Dim lastName as string = tokens(0).Trim() 
Dim firstName as string = tokens.Last().Trim() 
0

替換此兩行:

Dim first_Name as string = Name(0) 
Dim last_Name as string = Name(1) 

Dim first_Name as string = _Name(0) 
Dim last_Name as string = _Name(1) 

因爲你的陣列是_Name而不是Name