0
Scanner java maby easy but cant find anything
hey can anyone help me to get system.in to use my string? for example String x; Scanner input = new Scanner(System.in); input = x.nextline(); system.out.print(input); if frog (print rabbit if dog (print woof if cat print meow ect. ect. lol so if i input dog the output would be woof! thanks
9 Respuestas
+ 4
nextLine isn't a method for a String its a method for the scanner. You wrote x.nextLine(), x is your String.
Do
x = input.nextLine();
System also has a caps on the s.
I'll just assume the if statements aren't finished intentionally.
+ 3
import java.util.Scanner;
Scanner input = new Scanner(System.in);
String x = input.nextLine();
if(x=="dog"){
System.out.print("Woof");
}
+ 2
why equals function over ==? seems like == would be faster than accessing a function
*Nevermind. I just read up on equals() .. Sami is correct
+ 2
@Justin Hill
When dealing with primitive data-types == will compare by values, and is safe to use.
However, when comparing == with Objects (which is what a String is) it will compare the reference in memory instead since there's no pre-set way to compare equality for Objects.
== can work for strings under some circumstances, however, not reliably. It may work only because the compiler may set a String that has the same value as the String you initially created, rather than creating a new string object. It's more of an optimization by JVM. (Note* I don't know much about how this works, so I could be off on something)
So writing:
String a = "apple";
String b = "apple";
b would likely just be set to the reference of a, so b isn't really a new String. So == would work here.
Since this may not be reliable as you can create your own String objects unintentionally, it's best to use the equals() method.
equals() will essentially itterate through each character in the String, comparing them one by one to check for equality. So it is fairly slower but you are garunteed the results you want.
If you know when == would work, I suppose you could just use ==.
According to stackOverFlow how java works with String references is called String Interning. It might be worth the read:
https://en.m.wikipedia.org/wiki/String_interning
+ 1
Should variables of ints/floats/doubles/etc be compared with equals() as Well? Or is this mainly for Strings? and If it is just a string thing, will it hurt anything to use equals for all comparisons anyway?
+ 1
you can only use the equals for the wrapper object types.. like Integer Double String not for primitives data type
0
instead of == operator use equals() function
import java.util.Scanner;
public class Program
{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
String x = input.nextLine();
if(x.equals("dog")){
System.out.print("Woof");
}
}
0
it doesn't works for comparing variable to the object types like string... u will get an error of NullPointerException
0
Thanks everyone. Just woke up, going to give that link a read while I eat breakfast