Codecademy Forums

FAQ: Working with Text - Get Parts of Strings

This community-built FAQ covers the “Get Parts of Strings” exercise from the lesson “Working with Text”.

Paths and Courses
This exercise can be found in the following Codecademy content:

Learn C#

FAQs on the exercise Get Parts of Strings

There are currently no frequently asked questions associated with this exercise – that’s where you come in! You can contribute to this section by offering your own questions, answers, or clarifications on this exercise. Ask or answer a question by clicking reply (reply) below.

If you’ve had an “aha” moment about the concepts, formatting, syntax, or anything else with this exercise, consider sharing those insights! Teaching others and answering their questions is one of the best ways to learn and stay sharp.

Join the Discussion. Help a fellow learner on their journey.

Ask or answer a question about this exercise by clicking reply (reply) below!

Agree with a comment or answer? Like (like) to up-vote the contribution!

Need broader help or resources? Head here.

Looking for motivation to keep learning? Join our wider discussions.

Learn more about how to use this guide.

Found a bug? Report it!

Have a question about your account or billing? Reach out to our customer support team!

None of the above? Find out where to ask other questions here!

1 Like

I have found a strange answer to one of the exercises.

Here is the exercise: https://www.codecademy.com/courses/learn-c-sharp/lessons/csharp-working-with-text/exercises/get-parts-of-strings

The way we are taught and expected to answer goes along those lines:

      int charPosition = name.IndexOf("F");
      char firstLetter = name[charPosition];

Isn’t it strange? We write a code for finding what the first letter is by writing the first letter manually. Wouldn’t a better answer be:

char firstLetter = name[0];

I am no pedagogy specialist, but I would tend to believe that the intend answer is a bit redundant and purposeless. What do you guys think?

P.-S.: I’m a new C# learner, so maybe I got something completely wrong. Let me know if I did.

23 Likes

I agree with you that if all we’re trying to do is get the first letter of a string, and convert it char
char firstLetter = name[0]; is much more efficient. Probably, they were trying to illustrate the use of the IndexOf() method, but it might have been a better lesson if they used a letter other than the first, and named the variable something like positionOfLetter.
Maybe something like this would demonstrate the functionality of IndexOf() better:

string name = "Benjamin Franklin";
Console.WriteLine(name);
int charPosition = name.IndexOf("F");
char firstLetter = name[charPosition];
Console.WriteLine(firstLetter + " is the " + charPosition + "th letter in " + name + ".");
2 Likes

Actually it would be the charPosition + 1 letter since IndexOf() starts at 0. Oops! :man_facepalming:

Console.WriteLine(firstLetter + " is the " + (charPosition + 1) + "th letter in " + name + ".");

Upvoting. Hopefully they revisit this lesson refactor.

2 Likes

I completely agree! I couldn’t even figure out what I was supposed to use for IndexOf(), because each person will have a different letter.

4 Likes

Agreed. This entire lesson needs to be reworked. It’s not practical, efficient, or realistic. Also, overall, I hate how the lessons require you to declare variables specifically using int, string, bool, etc instead of using var. Let C# do the work of figuring out what’s what.

2 Likes

I agree that this lesson needs to be reworked. I did not find the instructions clear on what exactly was I supposed to do. The coding itself is pretty easy.

2 Likes

IMO, I don’t recommend letting C# do an extra job, if you know the type of variable, why let C# store any type? that is a bad practice, you don’t have control what you want store/receive/send and the code will be hard to read and follow if you throw any error.

Agreed with this. char firstLetter = name[0]; is not just more efficient, but it’s better design. It makes the function usable for more than one hard-coded name.

Codecademy, please consider reworking this lesson.

1 Like

How about the last part of the exercise?

This is what I tried,

// Print results Console.WriteLine(firstLetter.ToString() + ' ' + lastName);

and this was the result.

102Abbasi

Had to change it to this to get the result I would have expected to be the correct answer:

Console.WriteLine(firstLetter.ToString()+ ' ' + lastName);

Also agree. I was lost because I was trying to make it find the first letter of any input, and never even considered this was the only name to use. Why would I? Some of these lessons make learning way harder than it should be