2013-07-30 64 views
2

如何在Visual Basic中獲取字符串中所有數字的總和?如何獲取字符串中所有數字的總和 - Visual Basic 2010(模塊)

---例如---

Dim userWord As String 
userWord = Console.ReadLine() 

用戶輸入: 「狐跳過了12月亮」

輸出顯示:3

+0

我們看一些代碼 – Krishna

+0

(對不起,習慣在網站這整個事情的格式) 「昏暗userWord作爲字符串 Console.WriteLine(「輸入一個句子,所以該程序可以玩它「) Console.WriteLine(」按下回車鍵結束程序「) userWord =到Console.ReadLine() Console.WriteLine(」在字符串中所有數字之和。「) //這是我被卡住的部分 \t Dim num As Char()= {「0」,「1」,「2」,「3」,「4」,「5」,「6」,「7」,「8」,「9 「} 暗淡我作爲整數 昏暗總爲整數 如果(Integer.TryParse(NUM,I))然後 Console.WriteLine(總= I + I) 結束如果」 – Matt

回答

3

什麼jereon說:

Dim mytext As String = "123a123" 
    Dim sum As Integer = 0 
    For Each ch As Char In mytext 
     Dim i As Integer 
     If Integer.TryParse(ch, i) Then 
      sum += i 
     End If 
    Next 
+0

+1 - 我測試了這一個工程..我意識到Convert.ToInt32不是要走的路。 – Krishna

+0

確實,但我寧願不支持工作代碼,因爲這可能是一個學校作業:p – JMan

2
  1. 循環遍歷你的字符的字符串與一個foreach
  2. TryParse它們到一個int
  3. 保留一個變量具有總數和添加,如果它是一個整數
0

您可以使用LINQ

Dim input As String = "Fox jumped over the 12 moon" 
Dim sum As Integer = input.Where(Function(c) [Char].IsDigit(c)) 
          .Sum(Function(x) Integer.Parse(x.ToString())) 

這將提取所有的數字([Char].IsDigit])的字符,然後將這些字符轉換爲整數(Integer.Parse),而對它們求和。

2
Dim mytext As String = "Fox jumped over the 12 moon" 
    Dim i As Integer = 0 
    For Each ch As Char In mytext 
     Dim temp As Integer = 0 
     If Integer.TryParse(ch, temp) Then 
       i += temp; 
     End If 
    Next 
+0

這是我在我的代碼到目前爲止: ' 昏暗userWord作爲字符串 昏暗myChars()爲char = userWord.ToCharArray() 昏暗我爲整數= 0 對於各自爲CH爲CHAR在myChars 如果Char.IsDigit(CH)筆母雞 i + = Convert.ToInt32(ch) End If Next 控制檯。的WriteLine( 「的在字符串的所有數字和:」) Console.WriteLine(ⅰ) ' 用戶輸入:Fox12 輸出:99 我想要的輸出爲3(1 + 2 = 3)。你能詳細說明1 + 2 = 99嗎?我錯過了什麼嗎? – Matt

+0

提出了一個斷點和調試。查看Char.IsDigit(ch)是否爲2次 – Krishna

+1

這不起作用。它是如何獲得兩個upvotes?問題是不理解Convert.ToInt32 – dbasnett

0

以下是我在我的代碼到目前爲止:

Dim userWord As String 


    Dim myChars() As Char = userWord.ToCharArray() 
       Dim i As Integer = 0 
       For Each ch As Char In myChars 
        If Char.IsDigit(ch) Then 
         i += Convert.ToInt32(ch) 
        End If 
       Next 

    Console.WriteLine("Sum of all digits in the String: ") 
       Console.WriteLine(i) 

用戶輸入:Fox12 輸出:99

我想要的輸出爲3(1 + 2 = 3 )。你能詳細說明1 + 2 = 99嗎?

我錯過了什麼嗎?

+0

不,儘管得到了投票,但代碼是錯誤的。 – dbasnett

+0

@Matt - Ive編輯了我的帖子..請再試一次 – Krishna

+0

我知道我不允許在評論中回覆「謝謝」。但是我還應該怎樣確認我的問題已經得到解答?對不起,我有點新。但最終我會得到東西的擺動,最終如何在這裏工作。 無論如何,謝謝你們!我想我明白你如何從字符串中提取數字。 :) – Matt

相關問題