I think i found an easier way: String s = "123456789"; StringBuilder x = new StringBuilder(s); x.reverse(); String output = x.toString(); System.out.println(output);
Your way works and is more simple than my way, however this video is supposed to teach those who don’t know how to reverse a sting WITHOUT StringBuilder. (For example in a AP CSA class they would ask you to do this without StringBuilder)
Using str.length gives you the length of a string but since getting a char from a string starts at 0 not 1, we need to go back one to get the last letter. For example if we had the string “Hello”, and we got the length it would be 5 but if we got the 5th letter AND start counting from 0 not 1 then we we would have an issue because we would go 0, 1, 2, 3, 4, 5 and if you look closely I just listed 6 numbers. So really using the length you are getting the 6th letter here of a 5 letter word. That’s why we subtract one.
array {1, 2, 3, 4, 5} There's 5 elements inside, it has a length of 5. However, if we want to know the index of each element inside the array the value '1' is at position '0' which means element '5' is at position '4', so to get the value '5' we need to write array[4]. given N is the length of the array, n-1 determins the position of those elements. If simple wrote i = str.length; you would get an out of bounds exception element because the element '5' is at position '4', not position '5'. Following the formular n-1, we say str.-length-1 to ensure we always end up at the last element contained within the array.
Because in computer science classes, often times students are asked to do things without buffer. They need to know how to do it without before they use it. (When first learning)
the plus makes it so the thing after gets ADDED to the string. so the string starts off with nothing in it and each time it goes through the for loop, one letter from the str string is added to result. (it goes backwards so its reversed.)
StringBuilder is another way you could do this. However, I am teaching how to do this manually, because in schools, teachers don't want you to take shortcuts.
@@mintype what if you wanted to change the string itself inside the loop rather than creating a empty string to store the reversed version on. (thxs for the reply btw, i'm new so that helped)
@@pradipacharya3168 I've done some research and if you wanted to change the string itself inside the loop rather than create an empty string to store the reversed version to, that wouldn't really work. However, this video is to show people how to reverse strings using a for loop, like how they may expect a student to in a computer science class. If you really wanted to reverse a string in less lines of code etc., you could do the following: String originalString = "Hello, world!"; StringBuilder reversedString = new StringBuilder(originalString).reverse(); System.out.println(reversedString); // prints "!dlrow ,olleH"
Can you provide some info? Like give me your code so I can see whats wrong. Also maybe tell me your version of Java? New Java versions come out all the time and can break old code. discord help server: discord.gg/hhGu6mV5wm
Likely you put your print statement inside the for loop so it is printing each iteration. The final value of the resulting string after the for loop should be the reverse.
You have a ; (semicolon) at the end of your for loop!!!! updated code: String input ="Hello world!"; String output=" "; for(int i=input.length()-1;i>=0;i--) output+=input.charAt(i); System.out.println(output);
Very simple & sweet code, thank man!
Glad it helped!
If anyone has any other things related to CS or JAVA they want a video on, just reply here!
Join the discord! -> discord.gg/hhGu6mV5wm
great video man probably shortest programming video i have watched on youtube. i am new to coding how do i excel in this
just keep coding :) if u dont know what to code go learn something new and maybe some cool ideas will pop into ur head!
short and simple, thank you
You're welcome!
Nice short explanation 😊
Glad it was helpful!
0:24 greater than or equal to
oh yea thanks
I think i found an easier way:
String s = "123456789";
StringBuilder x = new StringBuilder(s);
x.reverse();
String output = x.toString();
System.out.println(output);
Your way works and is more simple than my way, however this video is supposed to teach those who don’t know how to reverse a sting WITHOUT StringBuilder. (For example in a AP CSA class they would ask you to do this without StringBuilder)
interviews tend to not allow things like StringBuilder, while yes it is more efficient, they want to see if you know the fundamental logic
Dude can u explain why decremented the str.length by 1
Using str.length gives you the length of a string but since getting a char from a string starts at 0 not 1, we need to go back one to get the last letter. For example if we had the string “Hello”, and we got the length it would be 5 but if we got the 5th letter AND start counting from 0 not 1 then we we would have an issue because we would go 0, 1, 2, 3, 4, 5 and if you look closely I just listed 6 numbers. So really using the length you are getting the 6th letter here of a 5 letter word. That’s why we subtract one.
@@mintype thx understood
Simple and easy 👏
Thanks a lot 😊
great very simple and very understandable thank you thank you
Glad it was helpful!
thanks man!!
yw
im not exactly sure i understand why we do .length - 1; what is the -1 for?
-1 means the index of last character, because index starts from zero, so when you want to get last characters' index you should add this -1
array {1, 2, 3, 4, 5}
There's 5 elements inside, it has a length of 5.
However, if we want to know the index of each element inside the array the value '1' is at position '0' which means element '5' is at position '4', so to get the value '5' we need to write array[4]. given N is the length of the array, n-1 determins the position of those elements.
If simple wrote i = str.length; you would get an out of bounds exception element because the element '5' is at position '4', not position '5'. Following the formular n-1, we say str.-length-1 to ensure we always end up at the last element contained within the array.
Thank you for your valuable information
@@Chilli_Tea You're amazing!
Why we are not using buffer instead of loop
Because in computer science classes, often times students are asked to do things without buffer. They need to know how to do it without before they use it. (When first learning)
Why you use that + sign with result?
the plus makes it so the thing after gets ADDED to the string. so the string starts off with nothing in it and each time it goes through the for loop, one letter from the str string is added to result. (it goes backwards so its reversed.)
Mere 'Bete' ko lagtaa hai ki 'Strings' se related kuch gaddbad ho gayi aur kuch 'Results' yahaan mil jaayein.
StringBuilder
StringBuilder is another way you could do this. However, I am teaching how to do this manually, because in schools, teachers don't want you to take shortcuts.
I keep getting an exception out of bounds error and I’m not sure why.
send ur code here
type mismatch bro
Thank you
yw
how do u reverse the string itself
you can set the original string variable's value to the result string variable's value like so:
str = result;
@@mintype what if you wanted to change the string itself inside the loop rather than creating a empty string to store the reversed version on. (thxs for the reply btw, i'm new so that helped)
@@pradipacharya3168 I've done some research and if you wanted to change the string itself inside the loop rather than create an empty string to store the reversed version to, that wouldn't really work. However, this video is to show people how to reverse strings using a for loop, like how they may expect a student to in a computer science class. If you really wanted to reverse a string in less lines of code etc., you could do the following:
String originalString = "Hello, world!";
StringBuilder reversedString = new StringBuilder(originalString).reverse();
System.out.println(reversedString); // prints "!dlrow ,olleH"
@@mintype thank you man, that helped a lot!
glad it helped!
nice
Thanks
Nice
Thanks
You said i less than but you typed greater than sign 😂😂😂
ops my bad
my results came out diffrent
Can you provide some info? Like give me your code so I can see whats wrong. Also maybe tell me your version of Java? New Java versions come out all the time and can break old code.
discord help server: discord.gg/hhGu6mV5wm
WRONG CODE
??? What went wrong?
@@mintype o
ol
oll
olle
olleh
this is the actual output what i got
Isn’t that hello backwards though? “olleh”
@@mintype yes but why it is reversing like this it should only "olleh" not all these
Likely you put your print statement inside the for loop so it is printing each iteration. The final value of the resulting string after the for loop should be the reverse.
Hi, I am having an error. what mistake i have made?
package Practice;
public class HelloReverse {
public static void main(String[] args) {
String input ="Hello world!";
String output=" ";
for(int i=input.length()-1;i>=0;i--);
output+=input.charAt(i);
System.out.println(output);
You have a ; (semicolon) at the end of your for loop!!!!
updated code:
String input ="Hello world!";
String output=" ";
for(int i=input.length()-1;i>=0;i--) output+=input.charAt(i);
System.out.println(output);
@@mintype Thank you so much!
Thank you
Thank you
Thank you
nice
danke
@@mintype dahnke