You're not comparing strings with the == (equality) operator, are you??
You'll always get false this way since you're comparing two different
string objects (with the same string value).
Try, the equals() method on your strings. Ie.
System.out.println(mediaData.getMediaName().equals(name));
Indra Syafruddin wrote:
I tried to compare two String, one comes from parameter that is sent via
xmlrpc, one comes from arraylist data.
Both String have exactly same data. But why the comparation value return
false??
import java.util.*;
public class ListMedia {
private MediaData mediaData;
private MediaData[] listData;
private List list = new ArrayList();
public ListMedia() {
this.createMediaList();
mediaData = getMediaData("test.avi");
System.out.println(mediaData.getMediaName());
}
private void createMediaList() {
mediaData = new MediaData("Nyoba.avi", "c:/fans/Nyoba.avi", "video",
"audio");
list.add(mediaData);
mediaData = new MediaData("test.avi", "c:/fans/test.avi", "videoTest",
"audioTest");
list.add(mediaData);
mediaData = new MediaData("testjuga.avi", "c:/fans/test.avi",
"videoTest", "audioTest");
list.add(mediaData);
}
public void addMediaList(String name, String url, String video, String
audio) {
mediaData = new MediaData(name, url, video, audio);
list.add(mediaData);
}
public void removeMediaList(Iterator i) {
i.remove();
}
public MediaData getMediaData(String name) {
System.out.println("name = " + name);
ListIterator i = list.listIterator();
for (int no = 0; i.hasNext();) {
mediaData = (MediaData) i.next();
System.out.println(mediaData.getMediaName() + " = " + name);
System.out.println(mediaData.getMediaName() == name);
if (mediaData.getMediaName() == name) {
System.out.println("found");
break;
}
// mediaData = null;
}
System.out.println(mediaData.getMediaName());
return mediaData;
}
public static void main(String[] args) {
new ListMedia();
}
}
Here's the output when I run server:
Starting server on port 1234
server running
name = test.avi
Nyoba.avi = test.avi
false
test.avi = test.avi
true
found
test.avi
test.avi
And here's the output when I create request :
name = test.avi
Nyoba.avi = test.avi
false
test.avi = test.avi // Why it is false???
false
testjuga.avi = test.avi
false
testjuga.avi
Anyone knows why it can happen??
thanks
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com