When I use System.out.println to show the size of a vector after calling the following method then it shows 1 although it should show 2 because the String parameter is “7455573;photo41.png;photo42.png” .
private void getIdClientAndPhotonames(String csvClientPhotos)
{
Vector vListPhotosOfClient = new Vector();
String chainePhotos = "";
String photoName = "";
String photoDirectory = new String(csvClientPhotos.substring(0, csvClientPhotos.indexOf(';')));
chainePhotos = csvClientPhotos.substring(csvClientPhotos.indexOf(';')+1);
chainePhotos = chainePhotos.substring(0, chainePhotos.lastIndexOf(';'));
if (chainePhotos.indexOf(';') == -1)
{
vListPhotosOfClient.addElement(new String(chainePhotos));
}
else // aaa;bbb;...
{
for (int i = 0 ; i < chainePhotos.length() ; i++)
{
if (chainePhotos.charAt(i) == ';')
{
vListPhotosOfClient.addElement(new String(photoName));
photoName = "";
continue;
}
photoName = photoName.concat(String.valueOf(chainePhotos.charAt(i)));
}
}
}
So the vector should contain the two String photo41.png and photo42.png , but when I print the vector content I get only photo41.png.
So what is wrong in my code ?
These two lines are the problem:
After the first one the
chainePhotoscontains"photo41.png;photo42.png", but the second one makes itphoto41.png– which trigers the if an ends the method with only one element in the vector.EDITED: what a mess.
7455573;photo41.png;photo42.png;which worked, but is probably incorrect and doesn’t match the explanation above input-wise.I wish someone would un-answer this.