Retornar menor String

Estou com duvida em uma questao onde tenho que fazer uma funçao que leia 2 strings como parametro e retorne a menor delas, mas quando faço a comparação para ver qual a menor e retornar, ela nao esta me retornando em string e sim e bollean.
segue o codigo:

public static String exercicio10 (String a1, String a2 ) {

  int resposta = a1.compareTo(a2);
  String  menor = "";

  if (resposta < 0) {
  	menor = a1;
  }
  
  else if (resposta > 0 ) {
  	menor = a2;
  }
  return menor;

}

Não entendi sua dúvida. Esse código aí vai te retornar a String.
Mas, na pra fazer essa comparação de tamanho, o compareTo não é o que vc deve usar.
Ele faz uma comparação a nível de caracteres da String e não de tamanho.
Usando o método length(), vc consegue pegar o tamanho de cada String e aí sim, compará-los.

int tamanho1 = a1.length();
int tamanho2 = a2.length();
//comparações

Confere aí.
Abraço!

Usando o .lenght eu iria comparar o tamnho numerico de caracteres da srtring, mas no caso eu preciso comparar o tamanho alfabeticamente, por isso o compareTo.
o problema desse codigo é que ele nao esta me retornando a String e sim um valor True ou False.

Ah sim… entendi.
Mas esse código te retorna uma String. Como vc ta usando? Como tá chamando esse método?

Na verdade não entendi …rs
O que vc quer dizer com “comparar tamanho alfabeticamente”?
Quer ordenar alfabeticamente?

sim ordenar alfabeticamente.
eu estou chamando ela pelo main
entrendo com as duas Strings…
mas ela esta retornando sempre um valor bollean invez de retornar a String

Bacana… mas não to entendendo como esse código ta te retornando um boolean …rs
Posta o seu main completo aí, pode ser?

ta ai seria o 10 no caso

public static void main(String[] args) {
int opcao;
do {
IO.println ("\nCiências da Computação - 2º Periodo.\nAlgoritimos e Estruturas de Dados I.\nTrabalho pratico 4.\nFrederico - 541507.\n");
IO.println ("------------------- STRINGS E METODO EM JAVA ---------------------");
IO.println ( );
IO.println (“Aperte 1 para o EXERCICIO - 01!”);
IO.println (“Aperte 2 para o EXERCICIO - 02!”);
IO.println (“Aperte 3 para o EXERCICIO - 03!”);
IO.println (“Aperte 4 para o EXERCICIO - 04!”);
IO.println (“Aperte 5 para o EXERCICIO - 05!”);
IO.println (“Aperte 6 para o EXERCICIO - 06!”);
IO.println (“Aperte 7 para o EXERCICIO - 07!”);
IO.println (“Aperte 8 para o EXERCICIO - 08!”);
IO.println (“Aperte 9 para o EXERCICIO - 09!”);
IO.println (“Aperte 10 para o EXERCICIO - 10!”);
IO.println ( );
IO.println ("-------------------------------------------------------------");
IO.println ( );
opcao = IO.readint ("Escolha o exercicio que deseja corrigir: ");

  	switch (opcao) {
  		case 0:
  			break;
  		case 1:
  			exercicio1 ( );
  			break;
  		case 2:
  			String x = IO.readString ("Entre com uma cadeia de caracteres: ");
  			IO.println ("A quantidade de caracteres minusculos são: "+exercicio2 (x));
  			break;
  		case 3:
  			String y = IO.readString ("Entre com uma cadeia de caracteres: ");
  			IO.println ("A cadeia de caracteres invertida é: "+exercicio3 (y));
  			break;
  		case 4:
  			String z = IO.readString ("Entre com uma cadeia de caracteres: ");
  			IO.println ("Os caracteres minusculos sao: "+exercicio4 (z));
  			break;
  		case 5:
  			String w = IO.readString ("Entre com uma cadeia de caracteres: ");
  			IO.println ("A cadeia de caracteres invertida é: "+exercicio5 (w));
  			break;
  		case 6:
  			exercicio6 ( );
  			break;
  		case 7:
  			String a = IO.readString ("Entre com uma cadeia de caracteres: ");
  			char b = IO.readchar ("Entre com um caractere que deseja saber a quantidade de vezes que aparece na cadeia acima: ");
  			IO.println ("O número de vezes que o caractere repete é: "+exercicio7 (a,b));
  			break;
  		case 8:
  			String c = IO.readString ("Entre com uma cadeia de caracteres: ");
  			String d = IO.readString ("Entre com outra cadeia de caracteres: ");
  			IO.println ("A nova cadeia intercalada é: "+exercicio8 (c,d));
  			break;
  		case 9:
  			String e = IO.readString ("Entre com uma cadeia de caracteres: ");
  			String f = IO.readString ("Entre com outra cadeia de caracteres: ");
  			IO.println ("Se as cadeias forem = a resposta é True, se forem != a resposta é False: "+exercicio9 (e,f));
  			break;
  		case 10:
  			String g = IO.readString ("Entre com uma cadeia de caracteres: ");
  			String h = IO.readString ("Entre com outra cadeia de caracteres: ");
  			IO.println ("alfabeticamente a menor cadeia é: "+exercicio9 (g,h));
  			break;
  		default:
  			break;
  	}
  	IO.println ( );
  	IO.println ("-------------------------------------------------------------");
  	opcao = IO.readint ("Aperte 1 para continuar. \nAperte 0 para encerrar a correção.\n");
  	IO.println ( );
  }
  while (opcao !=0); {
  	IO.println ( );
  }

}

O teu método é exercicio9 ou exercicio10?

ahhhhhh putz mano eh menos kkk

Isso mesmo kkk

Cara, me pegou. Simulei seu método aqui e para mim ele retornou uma string, contendo os parâmetros dela. Não entendi também como pode retornar um boolean. O seu método faz a comparação Lexicográfica certinha. Revisa o resto do código.

public static void main(String[] args) {

	String saida="";
	saida = Compara("abc", "abcd");
	System.out.println("Texto menor: "+saida);


}

public static String Compara(String texto1, String texto2){
	
	int resposta;
	resposta = texto1.compareTo(texto2);
	String menor="";
	
	if(resposta < 0){menor = texto1;}
	
	else{menor = texto2;}
	return  menor;
	<img src="/uploads/default/original/3X/c/4/c49af44f633e1a518019dbd6334122c5eaed874c.png" width="690" height="452">
}