אפילו ששתי המחרוזות שמושוות הן "*", התנאי משום מה לא מתקיים. יש למישהו הסבר אולי?
if (f.substring(3,3+1).toString() == "*" ){}
לא ממש מתעסק עם JAVA אבל זה צריך לעבוד מוזר שלא:|
String f = "(x)*(x)";if (String(f.substring(3, 3+1)).equals("*"))System.out.pritnln("yes");
String f = "(x)*(x)"; if (f.charAt(f.indexOf("*")) == '*') System.out.println("yes");או לחילופין String f = "(x)*(x)"; if (f.charAt(3) == '*') System.out.println("yes"); http://i60.tinypic.com/35aowg8.jpg
או לחילופין
String f = "(x)*(x)"; if (f.charAt(3) == '*') System.out.println("yes");
http://i60.tinypic.com/35aowg8.jpg
String f = "f"; String g = "f"; System.out.println(f==g);
String f = "f"; String g = "f"; g = f; System.out.println(f==g);
אז כדאי להשוות מחרוזות צריך להשתמש בפעולה equals או compareTo String f = "f"; String g = "f"; System.out.println(f.equals(g));יחזיר true String f = "f"; String g = "f"; System.out.println(f.compareTo(g));יחזיר 0 מכיוון שאין הבדל בין המחרוזות.
String f = "f"; String g = "f"; System.out.println(f.equals(g));
String f = "f"; String g = "f"; System.out.println(f.compareTo(g));
הצבה שונה באחד המשתנים יישנה את כתובתו, עד אז, g == f.
נכון, האופרטור == אינו מתאים להשוואת אוביקטים אך במקרה זה, זה יצליח.