2010-02-24 58 views

回答

0

如果你想在你可以使用LINQ查詢字符串中的最後一個字母字符,如(C#):

var d = from c in myString.ToCharArray().Reverse() 
       where Char.IsLetter(c) 
       select c; 
return d.First(); 
+0

請參閱問題:VB字符串。 – NTDLS 2010-02-24 16:01:12

0

string.Substring(string.Length - 2,1);

2

對不起它已經有一段時間,因爲我做VB所以這可能不會是完美的(並且可能是C#和VB的混合物),但你的想法:

Dim s = "V1245-12V0" 
Dim lastButOneLetter = String.Empty 

If s.Length > 1 Then 
    'Can only get the last-but-one letter from a string that is minimum 2 characters 
    lastButOneLetter = s.Substring(s.Length - 2, 1) 
Else 
    'do something if string is less than 2 characters 
End If 

編輯:固定爲編譯VB .NET代碼。

+0

+1長度檢查。 -1表示使用子字符串。 – Joel 2010-02-24 16:06:39

+0

@Joel - 爲什麼-1使用子字符串?它比Strings.GetChar ...或mystring(...)更清晰,更明顯 – 2010-02-24 16:18:40

+0

我認爲OP在詢問「Char」時非常清楚。由於我沒有使用子字串downvote其他人,我會給你。值得記住做長度檢查。 – Joel 2010-02-24 17:12:58

0

使用Substring上包含「V1245-12V0」

s.Substring(s.Length - 2, 1); 
+0

請問我爲什麼這是downvoted?正如其他人曾經以類似的形式提到過這種... ... downvote和不留下評論被認爲是非常粗魯和無知,這是違背SO的精神。如果我低估了你的回答,不發表評論,你不知道是什麼原因......你會如何? – t0mm13b 2010-02-24 16:12:33

+1

這可能來自Joel Potter不同意使用子字符串。如果你注意到使用Substring的每個答案都被低估了,即使它是基於我們提供的信息的完美解決方案。downvote國際海事組織是一個答案,不解決原來的問題,不是因爲某人的個人喜好。 – 2010-02-24 16:25:06

+0

@安迪:我發表了評論,他的回答.... – t0mm13b 2010-02-24 16:39:56

-1

你可以有自己的功能,如

Function Left(ByVal str as string, byval index as integer) As String 

    Left=str.Substring(0,index); 
End Function 

Function Right(ByVal str as string, byval index as integer) As String 

    Right=str.Substring(str.Length-index) 
End Function 

,並利用它們來獲得你所需要的字符串s。

+0

This _is_ VB:你已經有'Left','Mid'和'Right'了。 – 2016-08-27 18:28:02

1
Dim secondToLastChar As Char 
secondToLastChar = Microsoft.VisualBasic.Strings.GetChar(mystring, mystring.Length - 2) 

http://msdn.microsoft.com/en-us/library/4dhfexk4(VS.80).aspx

或者只記得任何字符串是字符數組;

secondToLastChar = mystring(mystring.Length - 2) 
+0

@Joel Potter - 那你爲什麼不修改這個問題來指定不使用子字符串,而是儘管提出了模糊的問題來降低每個人的意見!你有足夠的代表點來做到這一點! – t0mm13b 2010-02-24 16:39:20

+0

我沒有倒下每個人。我只是提出了最好的解決方案(Coehoorn's)。 – Joel 2010-02-24 17:06:36

0

是不是很難?

dim mychar as string 
dim yourstring as string 
yourstring="V1245-12V0" 
mychar=yourstring.Substring(yourstring.Length - 2, 1) 
4

不要使用子得到的只是一個字符

Dim MyString As String = "V1245-12V0" 
Dim MyChar As Char = MyString(MyString.Length - 2) 
+0

我同意。看不到爲什麼80%的答案選擇了這種方法。 – Joel 2010-02-24 16:04:00

+0

基於OP後來想用這個角色做什麼更靈活。我會使用字符串來支持字符串的唯一原因是,除非我絕對確信它將始終是一個必需的字符,並且有人不會說「實際上我現在想要字符串中的2個字符」,或者我絕望地缺乏內存,比如嵌入式設備。 – 2010-02-24 16:29:34

0

這裏是一個VB的解決方案:

Dim text = "V1245-12V0" 
Dim v = Left(Right(text, 2), 1) 

你做需要檢查的text長度,除了你的語義是什麼你想爲空發生(和Nothing )和單個字符字符串。

相關問題