• 0

String Test in VB.NET


Question

I am suppose to create an application that displays the first letter, last letter, and middle letter of a word or phrase. This is my code so far:

'Jane Lewis

'String Test

'Displays the first letter, last letter, and middle letter of a word or phrase

Public Class frmStringTest

Private Sub btnDisplayData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDisplayData.Click

Dim word As String

Dim firstLetter As String

Dim secondLetter As String

Dim lastLetter As String

Dim numLetters As Integer

?

word = Me.txtPhrase.Text

word = word.ToLower

numLetters = word.Length

End Sub

End Class

 

What else do I need?

We are working on Strings this week, and I am not understanding Strings very well, and they are confusing to me. I ask my teacher for an one on one explanation, but my Programming teacher didn't make it any clearer.If you give me the for this problem, can you explain why you do this and that, please. Thank you.

 

Link to comment
https://www.neowin.net/forum/topic/1203365-string-test-in-vbnet/
Share on other sites

15 answers to this question

Recommended Posts

  • 0

http://msdn.microsoft.com/en-us/library/system.string(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1

 

Take a look at the "Properties" section for something that might help. It sounds like you want the character at the first position in the String as well as the last position and somewhere halfway...

  • 0
  On 04/03/2014 at 18:31, Jane Lewis said:

I am suppose to create an application that displays the first letter, last letter, and middle letter of a word or phrase. This is my code so far:

'Jane Lewis

'String Test

'Displays the first letter, last letter, and middle letter of a word or phrase

Public Class frmStringTest

Private Sub btnDisplayData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDisplayData.Click

Dim word As String

Dim firstLetter As String

Dim secondLetter As String

Dim lastLetter As String

Dim numLetters As Integer

?

word = Me.txtPhrase.Text

word = word.ToLower

numLetters = word.Length

End Sub

End Class

 

What else do I need?

We are working on Strings this week, and I am not understanding Strings very well, and they are confusing to me. I ask my teacher for an one on one explanation, but my Programming teacher didn't make it any clearer.If you give me the for this problem, can you explain why you do this and that, please. Thank you.

If you look at a string as a list of chars, you just need the first character which starts at 0 then the last, given to you by word.Length, and then the middle which would be word.Length divided by 2.  

 

http://msdn.microsoft.com/en-us/library/hxthx5h6(v=vs.110).aspx

  • 0
  On 04/03/2014 at 18:31, Jane Lewis said:

I am suppose to create an application that displays the first letter, last letter, and middle letter of a word or phrase. This is my code so far:

'Jane Lewis

'String Test
'Displays the first letter, last letter, and middle letter of a word or phrase
Public Class frmStringTest
Private Sub btnDisplayData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDisplayData.Click
Dim word As String
Dim firstLetter As String
Dim secondLetter As String
Dim lastLetter As String
Dim numLetters As Integer
?
word = Me.txtPhrase.Text
word = word.ToLower
numLetters = word.Length
End Sub
End Class

What else do I need?

We are working on Strings this week, and I am not understanding Strings very well, and they are confusing to me. I ask my teacher for an one on one explanation, but my Programming teacher didn't make it any clearer.If you give me the for this problem, can you explain why you do this and that, please. Thank you.

 

You should read up on strings.

Now there are several approaches to this.. I would recommend this way:

Public Class Form1

    Dim myString As String
    Dim stringLen As Integer
    Dim firstChar As String
    Dim lastChar As String
    Dim middleLetter As String
    Dim saveMYVars As Boolean
    Dim anothervar As Double
    Dim learntocode As String

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        myString = "Firey is the best coder ever"

        'step 1, get the string length
        Dim counter As Integer
        For counter = 0 To myString.Length
            stringLen = stringLen + 1
        Next counter

        'step 2, find the first letter
        firstChar = myString.Substring(0, 1)

        'step 3 last letter
        lastChar = myString.Substring(stringLen - 2, 1)

        'step 4, ensure we have the right letters
        firstChar = myString(0)
        lastChar = myString(stringLen - 2)

        'Step 5 get the middle letter.
        For counter = 1 To myString.Length / 2
            middleLetter = myString.Substring(counter - 1, 1)
        Next counter

        'Step 6, verify it's the middle letter
        middleLetter = myString(stringLen / 2)

        'Step 7, save the variables off so the computer doesn't forget
        saveMYVars = True 'this is critical in any VB Program

        'step 8, show it
        If (saveMYVars) Then
            MessageBox.Show("Firster")
            MessageBox.Show(myString(0))
            MessageBox.Show("Middleer")
            MessageBox.Show(myString.Substring(counter - 1, 1))
            MessageBox.Show("Laster")
            MessageBox.Show(lastChar)
        End If
    End Sub
End Class

The code above is tested and working.

  • 0
  On 04/03/2014 at 18:56, firey said:

You should read up on strings.

Now there are several approaches to this.. I would recommend this way:

Public Class Form1

    Dim myString As String
    Dim stringLen As Integer
    Dim firstChar As String
    Dim lastChar As String
    Dim middleLetter As String
    Dim saveMYVars As Boolean
    Dim anothervar As Double
    Dim learntocode As String

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        myString = "Firey is the best coder ever"

        'step 1, get the string length
        Dim counter As Integer
        For counter = 0 To myString.Length
            stringLen = stringLen + 1
        Next counter

        'step 2, find the first letter
        firstChar = myString.Substring(0, 1)

        'step 3 last letter
        lastChar = myString.Substring(stringLen - 2, 1)

        'step 4, ensure we have the right letters
        firstChar = myString(0)
        lastChar = myString(stringLen - 2)

        'Step 5 get the middle letter.
        For counter = 1 To myString.Length / 2
            middleLetter = myString.Substring(counter - 1, 1)
        Next counter

        'Step 6, verify it's the middle letter
        middleLetter = myString(stringLen / 2)

        'Step 7, save the variables off so the computer doesn't forget
        saveMYVars = True 'this is critical in any VB Program

        'step 8, show it
        If (saveMYVars) Then
            MessageBox.Show("Firster")
            MessageBox.Show(myString(0))
            MessageBox.Show("Middleer")
            MessageBox.Show(myString.Substring(counter - 1, 1))
            MessageBox.Show("Laster")
            MessageBox.Show(lastChar)
        End If
    End Sub
End Class

The code above is tested and working.

May I ask why you set counter = 0

And I am a visual learner I have to see it done, and then I will get it.

  • 0

To be completely honest with you, my code is crazy convoluted (to get you thinking about what is happening).  You can do your entire project in 4 lines with only 1 variable. 

Think of strings as an array of chars.  You access arrays using indexes.

Index 0 = first
Index (length - 1) = last
Index (length / 2 - 1) = middle.

Imagine your string is an array (I show examples of it in my code).  Use what I wrote above (substituting length for that actual string length) to achieve what you want.

If I was to write the code in C# it would be something simple ie)

string myString = "myString";
MessageBox.Show("Firster: " + myString[0].toString() + " Middle Letter: " + myString[(myString.Length / 2) - 1].ToString() + " Last Letter: " + myString[myString.Length - 1],"Parts of a string"); 

  • 0
  On 04/03/2014 at 19:11, snaphat (Myles Landwehr) said:

You guy shouldn't be giving outright solutions. This is a homework assignment...

I agree, hence my code is so convoluted no teacher would ever accept it.  It is also 4 different ways of solving it with random ###### that does nothing.

  • 0
  On 04/03/2014 at 19:08, firey said:

To be completely honest with you, my code is crazy convoluted (to get you thinking about what is happening).  You can do your entire project in 4 lines with only 1 variable. 

Think of strings as an array of chars.  You access arrays using indexes.

Index 0 = first

Index (length - 1) = last

Index (length / 2 - 1) = middle.

Imagine your string is an array (I show examples of it in my code).  Use what I wrote above (substituting length for that actual string length) to achieve what you want.

If I was to write the code in C# it would be something simple ie)

string myString = "myString";

MessageBox.Show("Firster: " + myString[0].toString() + " Middle Letter: " + myString[(myString.Length / 2) - 1].ToString() + " Last Letter: " + myString[myString.Length - 1],"Parts of a string"); 

I think I got a better understanding of Strings now, thank you. You should be a teacher yourself.

  • 0
  On 04/03/2014 at 19:15, firey said:

I agree, hence my code is so convoluted no teacher would ever accept it.  It is also 4 different ways of solving it with random #### that does nothing.

 

  On 04/03/2014 at 19:08, firey said:

To be completely honest with you, my code is crazy convoluted (to get you thinking about what is happening).  You can do your entire project in 4 lines with only 1 variable. 

Think of strings as an array of chars.  You access arrays using indexes.

Index 0 = first

Index (length - 1) = last

Index (length / 2 - 1) = middle.

Imagine your string is an array (I show examples of it in my code).  Use what I wrote above (substituting length for that actual string length) to achieve what you want.

If I was to write the code in C# it would be something simple ie)

string myString = "myString";

MessageBox.Show("Firster: " + myString[0].toString() + " Middle Letter: " + myString[(myString.Length / 2) - 1].ToString() + " Last Letter: " + myString[myString.Length - 1],"Parts of a string"); 

This is the final code I have:

Public Class frmStringTest

Private Sub btnDisplayData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDisplayData.Click

Dim myString As String = Me.txtPhrase.Text 'declares the phrase enter by the user as a string

Dim stringLen As Integer 'declares as a string

Dim firstletter As String 'declares as a string

Dim lastletter As String 'declares as a string

Dim middleLetter As String 'declares as a string

Dim counter As Integer 'decalres counter as an Integer

For counter = 0 To myString.Length 'The counter starts at O to how many characters/letters are in the word/phrase

stringLen = stringLen + 1 'Goes up by 1

Next counter

'finding the first letter

firstletter = myString.Substring(0, 1)

Me.lblFirstAnswer.Text = firstletter 'Letter/character for the first letter will display here

'Finding the last letter

lastletter = myString.Substring(stringLen - 2, 1)

Me.lblLastAnswer.Text = lastletter 'Letter/character for the last letter will display here

'Ensures that I have the right letters

firstletter = myString(0)

lastletter = myString(stringLen - 2)

'Finding the middle letter.

For counter = 1 To myString.Length / 2

middleLetter = myString.Substring(counter - 1, 1)

Next counter

'Step 6, verify it's the middle letter

middleLetter = myString(stringLen / 2 - 1)

Me.lblMiddleAnswer.Text = middleLetter

End Sub

End Class

  • 0

Hello,

  On 04/03/2014 at 19:02, Jane Lewis said:

May I ask why you set counter = 0

And I am a visual learner I have to see it done, and then I will get it.

We already gave you that once. You should know some basic VB .NET functions a month later.

  On 04/03/2014 at 19:11, snaphat (Myles Landwehr) said:

You guy shouldn't be giving outright solutions. This is a homework assignment...

Once, IMO, OK. Twice, no. But then I guess firey (nothing against you firey :) ) is allowed to give 90% of the solution instead of 100% :huh:

Anyways, looking at this: http://msdn.microsoft.com/en-us/library/hxthx5h6%28v=vs.110%29.aspx should be MORE than enough to help you out.

  • 0
  On 11/03/2014 at 16:20, riahc3 said:

Hello,

We already gave you that once. You should know some basic VB .NET functions a month later.

Once, IMO, OK. Twice, no. But then I guess firey (nothing against you firey :) ) is allowed to give 90% of the solution instead of 100% :huh:

Anyways, looking at this: http://msdn.microsoft.com/en-us/library/hxthx5h6%28v=vs.110%29.aspx should be MORE than enough to help you out.

I didn't realize this was the second post.  However yea I am not going to give a 100% answer.  People do need to learn for themselves and I agree fully.   At the same time though, simply redirecting people to another resource doesn't do much especially when you don't know wtf you are looking at.

So I figured I'd give some ridiculous answer, and she could go through with a deubgger and test each line and see what happens.

  • 0

Hello,

  On 11/03/2014 at 16:25, firey said:

At the same time though, simply redirecting people to another resource doesn't do much especially when you don't know wtf you are looking at.

A month later the person should already know a basic function in VB .NET

I understand at first functions can surprise you but a month later......Basic things like Substring are not really hard.

http://lmgtfy.com/?q=how+to+use+substring+function+in+vb+.net

Just looking at Google pretty much lays it down.

  • 0
  On 11/03/2014 at 16:29, riahc3 said:

Hello,

A month later the person should already know a basic function in VB .NET

I understand at first functions can surprise you but a month later......Basic things like Substring are not really hard.

http://lmgtfy.com/?q=how+to+use+substring+function+in+vb+.net

Just looking at Google pretty much lays it down.

As I say, I didn't realize that this was already asked a month ago by the same person.  You are right, basic things aren't hard and for the most part are easy to grasp.  

  • 0

Hello,

  On 11/03/2014 at 16:32, firey said:

As I say, I didn't realize that this was already asked a month ago by the same person.  You are right, basic things aren't hard and for the most part are easy to grasp.

The only reason I came into this thread is because I was in that thread so its normal you didnt notice :)

Also, he "left" the previous thread; No solved, no thanks, nothing.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Just because Windows 10 will stop receiving updates doesn't mean your Windows 10 installed there will stop working. There are people with iPhone 8/9/10 that are still working, even without updates. There are people with Android 8/9/10 that are still working even without receiving any updates for over 5 years. There are people with Windows 7 and 8 that are still working for over 10 years. And most people install Windows and disable updates, so there are still a lot of people running Windows 10 without improvements and security updates for over 10 years.
    • Windows 10 EOL is coming, so how many is “forced”? (to be prepared and not wait until the last moment in October?)
    • I guess more Windows users are switching on their desktops/laptops than people buying new Steam Decks. I wouldn't be surprised. Deck doesn't have the mainstream appeal of other handhelds, usually people who would want one already have one. Glad to see Linux go up!
    • Any news about Windows and Microsoft always brings up crazy people saying; - Windows 11 is terrible, it destroys my hardware, it had sex with my wife, it told the FBI that I visit shemale sites, it collects my data where I get illegal anime. Never use Windows 11, go for Linux and it will never have sex with your wife.
    • QOwnNotes 25.6.0 by Razvan Serea QOwnNotes is a open source (GPL) plain-text file notepad with markdown support and todo list manager for GNU/Linux, Mac OS X and Windows, that (optionally) works together with the notes application of ownCloud (or Nextcloud). So you are able to write down your thoughts with QOwnNotes and edit or search for them later from your mobile device (like with CloudNotes) or the ownCloud web-service. The notes are stored as plain text files and you can sync them with your ownCloud sync client. Of course other software, like Dropbox, Syncthing, Seafile or BitTorrent Sync can be used too. Features: the notes folder can be freely chosen (multiple note folders can be used) sub-string searching of notes is possible and search results are highlighted in the notes application can be operated with customizable keyboard shortcuts external changes of note files are watched (notes or note list are reloaded) older versions of your notes can be restored from your ownCloud server trashed notes can be restored from your ownCloud server differences between current note and externally changed note are showed in a dialog markdown highlighting of notes and a markdown preview mode notes are getting their name from the first line of the note text (just like in the ownCloud notes web-application) and the note text files are automatically renamed, if the the first line changes compatible with the notes web-application of ownCloud and mobile ownCloud notes applications compatible with ownCloud's selective sync feature by supporting an unlimited amount of note folders with the ability to choose the respective folder on your server manage your ownCloud todo lists (ownCloud tasks or Tasks Plus / Calendar Plus) or use an other CalDAV server to sync your tasks to encryption of notes (AES-256 is built in or you can use custom encryption methods like Keybase.io (encryption-keybase.qml) or PGP (encryption-pgp.qml)) dark mode theme support theming support for the markdown syntax highlighting all panels can be placed wherever you want, they can even float or stack (fully dockable) support for freedesktop theme icons, you can use QOwnNotes with your native desktop icons and with your favorite dark desktop theme support for hierarchical note tagging and note subfolders support for sharing notes on your ownCloud server portable mode for carrying QOwnNotes around on USB sticks Evernote import QOwnNotes is available in many different languages like English, German, French, Polish, Chinese, Japanese, Russian, Portuguese, Hungarian, Dutch and Spanish Changes in QOwnNotes 25.6.0: QOwnNotes now builds with with Botan 3, when built with the system Botan library (cmake build parameter -DBUILD_WITH_SYSTEM_BOTAN=ON), because of the end of life of Botan 2 (for #2786) Keep in mind that Botan 3 needs C++20, which causes issues on Qt5 QMake and Qt5 will still use the internal Botan 2 amalgamation Creating an amalgamation Botan 3 did work, but caused major issues with various build processes The filename in checksum files of the Qt6 AppImages in the releases on GitHub was fixed (for #3286) Download: QOwnNotes 25.6.0 | 37.3 MB (Open Source) Download: QOwnNotes for Other Operating Systems View: QOwnNotes Home Page | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
  • Recent Achievements

    • Week One Done
      Epaminombas earned a badge
      Week One Done
    • Week One Done
      Prestige Podiatry Care earned a badge
      Week One Done
    • Week One Done
      rollconults earned a badge
      Week One Done
    • One Month Later
      lilred1938 earned a badge
      One Month Later
    • Week One Done
      lilred1938 earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      148
    2. 2
      Xenon
      132
    3. 3
      ATLien_0
      123
    4. 4
      +Edouard
      103
    5. 5
      snowy owl
      96
  • Tell a friend

    Love Neowin? Tell a friend!