comparing length of Strings

Recommended Posts

Hello, I am trying to comprehend how to compare the length between Strings.i have the following, to compare the length of 10 countries inserted by the user. It also orders them from lowest to highest:

`public void load() {		teclado=new Scanner(System.in);		paises=new String[10];		for(int f=0;f<paises.length;f++) {			System.out.print("Ingrese el nombre del pais:");			paises[f]=teclado.next();		}	}	public void ordenar() {		for(int k=0;k<9;k++) {			for(int f=0;f<9-k;f++) {				if (paises[f].compareTo(paises[f+1])>0) {					String aux;					aux=paises[f];					paises[f]=paises[f+1];					paises[f+1]=aux;				}			}		}	} `

When I use the same method with numbers it works. For instance:

`public void ordenar() {	   for(int k=0;k<9;k++){		for(int f=0;f<9-k;f++) {			if (vec[f+1]<vec[f]) {				int aux;				aux=vec[f];				vec[f]=vec[f+1];				vec[f+1]=aux;			  			}		}	  		}	}`

So I deduce maybe :

`if (paises[f].compareTo(paises[f+1])>0)`

is not correct, because it's the only difference comparing it to the method on numbers.Is there any other way to compare the length between Strings? thank you in advance. p.s I took it from a tutorial which has been working fine till now. I have even checked the "compareTo" on other sites and it seems to be appropriate but I don't know why it's not working here. I would appreciate any help.

Edited by breastsroke
Share on other sites

I don't know if it's necessary to say, but i am working on Java.I have realised the compareTo method works but only with Strings which start with the same letter. Then it arranges them properly.But it only arranges from lowest to higuest the String that start with the same letter.Isn't there a method which can be applied to any Strings regardless the letter they start with? p.s when above I say "order", I meant "arrange", "sort". English not being my native language..., sorry.

Share on other sites

Hi,I got it. The compareTo method is not for arranging Strings by their number of characteres but by their alphabetical order. Sorry!

Share on other sites

• 5 weeks later...

hi,You must use length() on your string for it. compareTo is for sorting an array of object. Note that your sort is not usual, you should do that

`ArrayList l = new ArrayList(); l.add( myCountry );Collections.sort( l );`

Edited by japisoft