• 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

    • This is the Superman film I had been waiting for. The tone was fine, yes a little more “fun” than previous outings but a lot of that came from supporting characters. Krypto was well handled, and somehow managed to not be an annoying distraction and actually a valid part of the story. Hoult was GREAT as Luthor. Genuinely so happy that this wasn’t crap. I personally enjoyed Superman Returns, despite its flaws (tried too much to hide behind the older movies, had no real fight to Superman). I enjoyed the Man Of Steel movies despite their flaws (totally that is NOT Superman). But this - this is the film I had wanted. In the UK we are far more reserved in cinemas than Americans. It’s rare that there is the whooping and hollering that we have seen from videos of US theatres, so when I say that the audience clapped at the end of this - it’s quite a big deal. As for all this “Superman has gone woke” BS - he is freaking Superman and if at any point in that movie you found yourself pooh-pooing his actions, you are just - you’re aligning your thinking with the problems and not the solutions. I adore how the movie addressed the modern world through thinly veiled allegory (Israel, online bots, perceptions of people, how they change on a dime) - that is maybe one of the greatest strengths of  comics, they rarely pull punches with that sort of thing, and look, THIS IS SUPERMAN, he’s meant to be the global boyscout and that is a strength and where he falls down sometimes, that’s just who he is and who he is meant to be. I also am glad there was no reference to the worldwide joke that is “Truth, Justice and the American way”.
    • People do it everywhere. Should be legal to be allowed to bitch slap people who put their phone on speaker in public places
    • Or Editpad 👍
    • They work like drug dealers. First we get free samples and when we like it they start charging for it. Wasn't there some uproar lately about the (possibly subbed) AI features in the new Nothing phones as well? Expect subs down the line, as AI cost a lot of money to run. And you're going to pay for it in the end 🤨
  • Recent Achievements

    • One Month Later
      Ricky Chan earned a badge
      One Month Later
    • First Post
      leoniDAM earned a badge
      First Post
    • Reacting Well
      Ian_ earned a badge
      Reacting Well
    • One Month Later
      Ian_ earned a badge
      One Month Later
    • Dedicated
      MacDaddyAz earned a badge
      Dedicated
  • Popular Contributors

    1. 1
      +primortal
      504
    2. 2
      ATLien_0
      207
    3. 3
      Michael Scrip
      205
    4. 4
      Xenon
      141
    5. 5
      +FloatingFatMan
      115
  • Tell a friend

    Love Neowin? Tell a friend!