Preciso de ajuda em um program em java

Fazer a parte principal de um programa em Java, o mais completo possível para:

  • ler uma cadeia de caracteres (string) do teclado;
  • supor que a cadeia representara uma palavra;
  • dizer se a cadeia de caracteres é uma palavra valida ( se contem apenas letras), ou não, com uma verificação adicional: se a primeira letra for maiúscula ela devera ser única ou a palavra inteira devera estar toda em maiúscula.

isso que o prof quer, mas eu nao consigo ver se a cadeia contem somente letras. nao estou conseguindo escrever corretamente o teste

  // definir dados
     String s;
     char x;
             s = IO.readString ( "Entrar com uma cadeia de caracteres:" );
                      IO.println ( "Valor lido:" + s); 
        if ( (s.charAt >= 'a' &&  s.charAt <= 'z') || ( s.charAt >= 'A' &&  s.charAt <= 'Z') );
             {
				              IO.println ( "Contem apenas letras" ); 
                     }  else
{IO.println ( "A cadeia apresenta outros caracteres alem de letras" );}

boolean somenteLetras(String palavra) { String palavraInicial = palavra; palavra = palavra.replaceAll("\\d", ""); palavra = palavra.replaceAll("\\W", ""); if (palavra.equals(palavraInicial)) return true; else return false; }

está função pega a palavra passada, tira tudo que não é letra… e se no final as duas forem iguais… então só continha letras na palavra… então retornará true… caso contrário, retornará false!

abraço!

a frase de a vara, e não o peixe não se aplica a esse post hehehe

  • dizer se a cadeia de caracteres é uma palavra valida ( se contem apenas letras), ou não, com uma verificação adicional: se a primeira letra for maiúscula ela devera ser única ou a palavra inteira devera estar toda em maiúscula.

estava fazendo a seugnda parte e ficou uma duvida…

se a primeira ser maiuscula… ou tudo deve ser maiusculo, ou tdo o resto da palavra deve estar em minusculo? é isso?

fabiozanardi, estou dando o algoritmo pronto pois gosto de fazer e serve de aprendizado pra mim.
E estou dando a resposta pra ele, sim, prontinha… pois azar é o dele que não vai estar desenvolvendo algoritmos simples assim…
eu estou aprendendo igual!

abraço

clarel.filho
é assim a segunda parte
se a palavra tiver a primeira letra maiúscula nao pode ter mais nenhuma maiúscula ex: Teste, so pode ter o T,
se nao ela tera q estar toda em maiúscula ex TESTE, o programa nao pode funcionar com a palavra assim TesTE. entendeu?

clarel.filho, não estou criticando você,

é que vira e mexe vou entrar em 1 topico para ajudar, e a resposta ja está direto, :S

é mesma coisa você comprar 1 quebra-cabeça e pedir para outra pessoa montar :frowning:

[code]boolean somenteLetras(String palavra) {
String palavraInicial = palavra;
palavra = palavra.replaceAll("\d", “”);
palavra = palavra.replaceAll("\W", “”);
if (palavra.equals(palavraInicial)) {

		if (palavra.charAt(0) == palavra.toUpperCase().charAt(0)) {

			if (palavra.equals(palavra.toUpperCase()))
				return true;
			else {
				palavra = palavra.replaceFirst(String.valueOf(palavra.charAt(0)), "");
				if (palavra.equals(palavra.toLowerCase()))
					return true;
				else
					return false;
			}

		}
		return true;
	} else
		return false;
}[/code]

Da uma testada melhor, mas acho que agora está funcional!
abraço!

Boa tarde,

Eu vi este trecho do código que desconhecia e fiquei com uma dúvida:

palavra = palavra.replaceAll("\\d", "");  
palavra = palavra.replaceAll("\\W", "");  

Existe alguma documentação que mostre que o “\d” e o “\w” remove o que não é letra? Existem outras expressões regulares , como “\p” ou sei lá, algum outro, que faça outra coisa?

clarel.filho
ah entendi usando as funções pra ver a validade.
Mas aproveitando me tire uma duvida quase boba que eu troco
eu tenho uma string s, e quero passar pra char, como fica s.charAt?

Documentação eu nunca achei, mas achei isto que é muito bom!
Uso esse tipo de expressões em muitas outras funções minhas também, que são um pouco particulares

Segue o link
http://en.wikipedia.org/wiki/Regular_expression

Abraço!

Sobre expressões, encontrei isto também!
http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html

E sobre o char, da uma olhadinha no meu exemplo abaixo!

String teste = “Ooo”;
char s[] = teste.toCharArray();

parte editada:
o chatAt você passara somente a letra na posição que você informar… começando em “0”, claro!

[quote=clarel.filho]Documentação eu nunca achei, mas achei isto que é muito bom!
Uso esse tipo de expressões em muitas outras funções minhas também, que são um pouco particulares

Segue o link
http://en.wikipedia.org/wiki/Regular_expression

Abraço![/quote]

Huumm vlw.

Eu achei este link aqui no fórum também que pode ajudar.
http://www.guj.com.br/articles/1

Eu testei a conversão de data americana MM-DD-AAAA para brasileira DD-MM-AAAA que está neste artigo, porém não da certo, ele nem compila :S

[quote=clarel.filho]Sobre expressões, encontrei isto também!
http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html

E sobre o char, da uma olhadinha no meu exemplo abaixo!

String teste = “Ooo”;
char s[] = teste.toCharArray();

parte editada:
o chatAt você passara somente a letra na posição que você informar… começando em “0”, claro![/quote]

Vlw por este ;D.

Este toCharArray eu conheço tb. Utilizo bastante, o que eu não conhecia mesmo eram essas expressões regulares no replace.
Eu quando precisa fazer isso de tirar os numeros da string, eu convertia para um vetor de char, percorria este vetor e em cada posição tentava converter o char para int se desse certo eu tirava ele da String.