Exercícios
String minusculas="abc";
String maiusculas="ABC";
if(minusculas.compareTo(maiusculas)<0)
System.out.println("Minusculas precedem lexicograficamente
maiusculas");
else
System.out.println("Maiusculas precedem lexicograficamente
minusculas");
String[] u=
{"", "I", "II",
"III", "IV", "V", "VI",
"VII", "VIII", "IX" };
String[] d=
{"", "X", "XX",
"XXX", "XL", "L", "LX",
"LXX", "LXXX", "XC" };
String[] c=
{"", "C", "CC",
"CCC", "CD", "D", "DC",
"DCC", "DCCC", "CM" };
String[] m=
{"", "M", "MM",
"MMM"};
String numRomano;
int numArabico=1234;
numRomano=m[numArabico/1000] + c[numArabico%1000/100]
+
d[numArabico%100/10] + u[numArabico%10];
System.out.println("o numero "+numArabico+"
corresponde a "
+ numRomano);
Escreva um trecho de
programa que transforma um String em um arranjo de caracteres
String s=...;
char[] ac=new char[s.length()];
for(int i=0; i<ac.length; i++) ac[i]=s.charAt(i);
String universidade="Universidade Federal de Minas
Gerais";
boolean achouEspaco=true;
int comprimentoSigla=0;
/* calcula o comprimento */
for(int i=0; i<universidade.length(); i++){
if(achouEspaco &
Character.isUpperCase(universidade.charAt(i)))
comprimentoSigla++;
achouEspaco=Character.isSpaceChar(universidade.charAt(i));
}
/* aloca o vetor e coleta a sigla */
char[] siglaChar=new char[comprimentoSigla];
int j=0;
achouEspaco=true;
for(int i=0; i<universidade.length(); i++){
if(achouEspaco &
Character.isUpperCase(universidade.charAt(i)))
siglaChar[j++]=universidade.charAt(i);
achouEspaco=Character.isSpaceChar(universidade.charAt(i));
}
String sigla=new String(siglaChar);
System.out.println("Sigla:"+sigla);
Observe o programa abaixo, compare com o trecho acima. O programa
abaixo, em função de utilizar o comando “sigla=sigla+universidade.charAt(i)”,
pode gerar mais lixo para ser coletado que o programa acima. Podem ser geradas
as seguintes instâncias de String para o coletor de lixo: (1) “”,
(2)”U”, (3)”UF”, (4)”UFM”; Neste caso
específico, este aspecto pode ser ignorado em favor da simplicidade e
legibilidade, mas não se deve esquecer que as instâncias de String são imutáveis, ou seja uma vez criada a instância de String não se
modifica.
class descobreSigla{
public static void main(String[] arg){
String
universidade="Universidade Federal de Minas Gerais";
boolean achouEspaco=true;
int comprimentoSigla=0;
String sigla="";
for(int i=0; i<universidade.length(); i++){
if(achouEspaco
& Character.isUpperCase(universidade.charAt(i)))
sigla=sigla+universidade.charAt(i);
achouEspaco=Character.isSpaceChar(universidade.charAt(i));
}
System.out.println("Sigla:"+sigla);
}
}