//Como fazer a leitura da variável TESTE = M1e2t3a4l5u6r7g8i9c0a1R2o3c4h5a sendo essa variável uma
//CONSTANTE, separar as letras e armazenar na variável LETRAS, e os numeros na vaiável NUMEROS, depois
//imprimir tudo.Como ficaria? O código abaixo que fiz é satisfatório?
import java.io.*;
public class METALURGICA
{
public static void main (String[]args)
{
final TESTE;
int[1..31]VTESTE = new int();
String LETRAS;
int NUMEROS;
VTESTE = TESTE; //penso em colocar os valores de TESTE em VTESTE para poder manipulá-los
int [1..31]VTESTE = {M1e2t3a4l5u6r7g8i9c0a1R2o3c4h5a}
for (int i=0;i>=1<=31;i++)
{
if(VTESTE[i] >=0 )
{
NUMEROS = VTESTE[i]
}
else
{
LETRAS = VTESTE[i]
}
}
for (int i=0;i>=1<=31;i++)
{
System.out.println("As letras são:" + LETRAS );
System.out.println("Os Numeros são:" + NUMEROS );
}
Exit(0);
Como separar os valores de uma constante ? ( resolvido )
17 Respostas
Se nao me engano tem um comando da classe String que chama charAt, ve se nao tem haver…
Galera, o que significa esse 1…31 ai:
int[1..31]VTESTE = new int();
Abraços
[b][i]Nobre Tecno,
Eu só coloquei 1…31 dentro do vetor pois, não tenho muita familiaridade com o uso deles. Não sei se está certo, se alguem além de vc, puder fazer uma crítica do meu código para conseguir a separação de valores da constante, eu ficarei grato, pois, estou realmente querendo descobrir…vlw![/b][/i] :lol: [color=red] [/color]
[i][color=olive] [/color]São os indices dos elementos do vetor VTESTE, coloquei assim, pois, VTESTE=TESTE, e 1…31 seríam os indices do vetor…[/i] 8)
Cara, segue uma solucao:
public class SeparadorDeLetras {
/**
* @param args
*/
public static void main(String[] args) {
String teste = "M1e2t3a4l5u6r7g8i9c0a1R2o3c4h5a";
char [] caracter = teste.toCharArray();
String LETRAS ="";
String NUMEROS ="";
System.out.println((int)'a');
for (char c : caracter ) {
if(Character.isDigit(c)){
NUMEROS += c;
}
else{
LETRAS += c;
}
}
System.out.println("Numeros: "+NUMEROS);
System.out.println("Letras: "+LETRAS);
}
}
[i][color=blue] [/color]Po ai, vlw vini, to testando sua solução…Brigaduuu![/i] 8)
import java.io.*;
public class METALURGICA
{
public static void main (String[]args)
{
final TESTE;
int[1..31]VTESTE = new int();
String LETRAS;
int NUMEROS;
VTESTE = TESTE; //penso em colocar os valores de TESTE em VTESTE para poder manipulá-los
int [1..31]VTESTE = {M1e2t3a4l5u6r7g8i9c0a1R2o3c4h5a}
for (int i=0;i>=1<=31;i++)
{
if(VTESTE[i] >=0 )
{
NUMEROS = VTESTE[i]
}
else
{
LETRAS = VTESTE[i]
}
}
for (int i=0;i>=1<=31;i++)
{
System.out.println("As letras são:" + LETRAS );
System.out.println("Os Numeros são:" + NUMEROS );
}
Exit(0);
Caro Vini, sua solução compila mas, não roda…deu uns erros de classload do Java lang não encontrados, importei o pacote Java.lang mas, sem sucesso. Vou tentar fazer no Eclipse ou Net Beans amanhã…rs![color=darkblue] [/color]
class Metalurgia {
public static void main(String args[]){
String str = "abcde123";
String Letras = "";
String Numeros;
char[] str_asc = new char[str.length()];
for (int i = 0; i < str.length(); i++){
str_asc[i] = str.charAt(i);
}
for (int i = 0; i < str.length(); i++){
if (((int)str_asc[i] >= 97) && ((int)str_asc[i] <= 122)){
Letras += str_asc[i];
}
//Falta add no if acima letras maisculas e add um if para numeros
}
System.out.print("\n" + Letras);
}
}
Cara, fiz praticamente o programa inteiro. Basta agora voce fazer o resto, pegar uma tabela ascii e entender o que eu fiz ;)
Se tiver duvida so colocar aqui.
Abraços
BRUCE WAYNE, rodei o código do Vini aqui, rodou tranquilamente nem precisa importar nada.
public class Teste {
public static void main(String[] args) {
String teste = "M1e2t3a4l5u6r7g8i9c0a1R2o3c4h5a";
char [] caracter = teste.toCharArray();
String LETRAS ="";
String NUMEROS ="";
System.out.println((int)'a');
for (char c : caracter ) {
if(Character.isDigit(c)){
NUMEROS += c;
}
else{
LETRAS += c;
}
}
System.out.println("Numeros: "+NUMEROS);
System.out.println("Letras: "+LETRAS);
}
}
[color=red]Como fazer a leitura da variável TESTE = M1e2t3a4l5u6r7g8i9c0a1R2o3c4h5a sendo essa variável uma
CONSTANTE, separar as letras e armazenar na variável LETRAS, e os numeros na vaiável NUMEROS, depois
imprimir tudo DE FORMA A FICAR ASSIM:
Numeros = 123456789012345
Letras = MetalurgicaRocha
Tecno, gostei muito da sua inteligente solução via AscII, fiz algo mas, não sei se a sintaxe do If tá correta...Como adaptá-lo a essa necessidade acima? Valeu pela ajuda amigo...[/color]
[color=blue]Outra coisinha: Uma constante não tem valor fixo? como vou fazer a separação do que está lá?[/color]
class Metalurgia {
public static void main(String args[]){
String str = "abcde123";
String Letras = "";
String Numeros;
String Maiusculas;
char[] str_asc = new char[str.length()];
for (int i = 0; i < str.length(); i++){
str_asc[i] = str.charAt(i);
}
for (int i = 0; i < str.length(); i++){
if (((int)str_asc[i] >= 97) && ((int)str_asc[i] <= 122)){
Letras += str_asc[i];
}
//Falta add no if acima letras maisculas e add um if para numeros
else if (((int)str_asc[i] >= 60) && ((int)str_asc[i] <= 95))
{
Maiusculas += str_asc[i];
}
else if(((int)str_asc[i] >= 48) && ((int)str_asc[i] <= 57))
{
Numeros += str_asc[i];
}
}
System.out.print("\n" + Letras);
}
}
[color=green][b][i]hodrigohamalho,
Cara valeu pela dica, eu naum consegui executar o código, uso prompt pra isso…vo tentar no Eclipse e Net beans pra ve no que dá…vlw![/i][/b][/color]
Hum, verifique a versão do seu javac…
Em questão de solução, a usando a tabela ASCII é interessante, mas a solução que o Vini apresentou é bem mais simples… não precisa ficar consultando a tabela, só usar Objetos.
Use o que já está pronto… não reinvente a roda, a não ser que você esteja estudando e quer saber como funciona…
abraço. 
[color=orange][b]Hodrigo,
Consegui rodar a classe SeparadorDeLetras no Net Beans! Mas, o Vini, não se ateve ao Fato de a Variável ser uma constante, não deveria ser declarada com a cláusula “final” ??? Então, como faço?
Mas, agradeço a vcs pela ajuda…vlw![/b][/color]
BRUCE WAYNE, veja a versao do java que voce esta usando! Creio que seja isso! Estou com o Java 6.
ate mais
[color=green]blz! vou verificar…[/color]
Bruce, não mudaria nada… só colocar final antes de String, lembre-se de declara constantes sempre com final e ela deve estar em maiúsculo.
Veja o código:
public class Teste {
public static void main(String[] args) {
final String TESTE = "M1e2t3a4l5u6r7g8i9c0a1R2o3c4h5a";
char [] caracter = TESTE.toCharArray();
// Sempre quando se vai concatenar caracteres, é melhor utilizar StrinBuffer ou StringBuilder
StringBuffer letras = new StringBuffer();
StringBuffer numeros = new StringBuffer();
for (char c : caracter ) {
if(Character.isDigit(c))
numeros.append(c);
else
letras.append(c);
}
System.out.println("Numeros: "+numeros);
System.out.println("Letras: "+letras);
}
}
[color=brown]Perfeito, problemas solucionados, código simples…vlw Hodrigo, Vini e Cia.![/color]