Resto de divisão

17 respostas
A

Pessoal estou começando com java agora e gostaria de saber como eu faço para descobrir o resto de uma divisão de dois valores… por exemplo

a/b

Obrigado

17 Respostas

marciolx

a % b

A

Como faço para converter um valor de char para int? Isso é possível??

obrigado!!

marciolx

a conversão é implícita, isto é:

char c = ‘A’;
int i = c; // sem problemas

(para detalhes veja http://www.jspbrasil.com.br:8081/jspbrasil/certificacao/conversao.jsp )

A

Mas isso nao funciona… quando faço isso o 7 que está no char vira 55 quando passo para inteiro…
eu estou querendo ler uma string e armazenar essa string em um vetor… por exemplo a string
[telefone removido] eu quero armazenar cada número desse em uma posição do vetor…
estou tentando fazer um programa que verifique o CPF… por isso que preciso disso pois tenho que multiplicar cada digito desse e depois fazer um somatório… tem alguma idéia de como posso fazer isso??

obrigado!!

marciolx

não funciona… como você gostaria, mas o que ele deve fazer é isso mesmo, 55 é o código inteiro para o valor ‘7’. Para fazer o que você quer, eu já respondi neste tópico:

http://www.guj.com.br/forum/viewtopic.php?t=3677

bandrade
vc pode usar Integer.parseInt(char)

char a = a

int a = Integer.parseInt(a)

 vc tem o Inteiro + vc tem que tratar as execções e tal, pra garantir q vai funcionar direito

té.

marciolx
<blockquote><div class="quote-author">“bandrade”:</div>vc pode usar Integer.parseInt(char)

char a = ‘a’

int a = Integer.parseInt(a)

aí vc tem o Inteiro… + vc tem que tratar as execções e tal, pra garantir q vai funcionar direito…

té.

tem certeza?

public class TesteGUJ2 {
	public static void main (String [] args) { 
		char a = 'a';
		int a = Integer.parseInt(a);
	}
}
C:\java>javac TesteGUJ2.java
TesteGUJ2.java:4: a is already defined in main(java.lang.String[])
                int a = Integer.parseInt(a);
                    ^
TesteGUJ2.java:4: cannot resolve symbol
symbol  : method parseInt (char)
location: class java.lang.Integer
                int a = Integer.parseInt(a);
                               ^
2 errors
Hempx
<blockquote><div class="quote-author">“marciolx”:</div><blockquote><div class="quote-author">“bandrade”:</div>vc pode usar Integer.parseInt(char)

char a = ‘a’

int a = Integer.parseInt(a)

aí vc tem o Inteiro… + vc tem que tratar as execções e tal, pra garantir q vai funcionar direito…

té.

tem certeza?

public class TesteGUJ2 {
	public static void main (String [] args) { 
		char a = 'a';
		int a = Integer.parseInt(a);
	}
}

C:java>javac TesteGUJ2.java TesteGUJ2.java:4: a is already defined in main(java.lang.String[]) int a = Integer.parseInt(a); ^ TesteGUJ2.java:4: cannot resolve symbol symbol : method parseInt (char) location: class java.lang.Integer int a = Integer.parseInt(a); ^ 2 errors

Seu vacilo eh que voce ta colocando duas variaveis com o msm nome…
coloca uma ‘a’ e a outra ‘b’
:lol:

D

Mudando o nome da variável Int, o primeiro erro some… mas o segundo persiste… pq???

marciolx

simplesmente porque não existe o método Integer.parseInt(char), veja em http://java.sun.com/j2se/1.4.1/docs/api/ classe java.lang.Integer

bandrade
sim esxiste o parse Int está  hehehe ((:

bom é o seguinte, ele num pode converter nesse caso pq a não é um numero

se estivesse assim:

char a = 1;

int b = interger.parseInt(a);

devia funcionar… ((:

marciolx
<blockquote><div class="quote-author">“bandrade”:</div>sim… esxiste o parse Int… está lá… hehehe… ((:

bom é o seguinte, ele num pode converter nesse caso pq ‘a’ não é um numero…

se estivesse assim:

char a = ‘1’;

int b = interger.parseInt(a);

devia funcionar… ((:

não, não existe o método com a assinatura parseInt(char) (muito menos parse Int), basta olhar a documentação da classe Integer em http://java.sun.com/j2se/1.4.1/docs/api/java/lang/Integer.html , portanto, não deveria funcionar porque não existe o método parseInt com esta assinatura.

:arrow: É sempre bom habituar-se a olhar a documentação (API) e no caso das wrapper classes, até mesmo decorá-la :idea:

bandrade

marcio lx… vc tá usando a mesma documentação q eu?? acho que sim… tentaí… vc postou a mesma coisa 2 vezes, daki a pouco o povo acha que eu só falo mentira… ehehehe

http://java.sun.com/j2se/1.4.1/docs/api/java/lang/Integer.html#parseInt(java.lang.String)

<quote>
basta olhar a documentação da classe Integer em http://java.sun.com/j2se/1.4.1/docs/api/java/lang/Integer.html
</quote>

((: … hasta

marciolx

você citou em todos os seus posts o método parseInt(char), basta dizer que char não é o mesmo que String. char é um tipo primitivo e String é uma classe

hasta…

A

oi !
Não sei se ainda está em tempo mas…

Tenho uma classe “não terminada” que confere o dígito verificador do
CNPJ/CPJ.

veja se ajuda…

ps:
não consegui tirar a carinha amarela do meio do código.
se ela aparecer para você substitua pelo número 8.

se tiver alguma dúvida entre em contato

[email removido]

abraço.

/**

  • Esta classe testa o dígito verificador do CNPJ e do CPF informado
  • e formata se for solicitado através do parâmetro format
  • autor Aldo Andrade de Lima
  • criada em 22/01/2004
    */

public class CnpjCpf {
/**

  • Testa se é CNPJ 14 dígitos
  • ou CPF 11 dígitos
  • @retorna True se não encontrar erros por outro lado retorna False
    */

/**

  • Remove pontuação, letras, tudo exceto dígitos
  • @retorna uma cópia do string limpo
    */
    public CnpjCpf(String str, String flag) {
    String ret = monta(str);
    System.out.println("retorno do CNPJ = " + ret);
    }
public CnpjCpf(String str) {

/**

*Este contrutor retorna o dígito verificador do string informado

*se o mesmo tiver o tamanho de 11 ou 14 dígitos

*/

String dv,retorno;

//

retorno = removeTudo(str);

int len = retorno.length();
//testa o tamanho do string se for 11 é cnpj se for 14 é cpf
//se for diferente de 11 ou de 14 sai

//if ((len !=11) || (len!=14)) {
//  System.out.println("Tamanho do string indevido :" + len);
//}

if (len == 11) {//cpf
  dv = trataCpf(retorno);
  System.out.println("retorno dv CPF = " + dv);
}

if (len == 14) {//cnpj
  dv = trataCnpj(retorno);
  System.out.println("retorno dv CNPJ = " + dv);
}

}

protected static String removeTudo(String string) {

int i, len = string.length();

StringBuffer dest = new StringBuffer(len);

char c;
for (i = 0; i &lt; len; i++) {
  c = string.charAt(i);
  if (Character.isDigit(c)) {
    dest.append(c);
  }
}
return dest.toString();

}

protected static String monta(String str) {
int len; len = str.length();

if (len == 14) {
  str = str.substring(0,8) + "/" + str.substring(8,12) + "-" + str.substring(12,14);
}
if (len == 11) {
  str = str.substring(0,8) + "-" + str.substring(8,11);
}
return str;

}

protected static String trataCnpj(String cnpj) {

String dv,j;  //digito verificador

Integer n1,n2;

int m, n, f, d1, d2;
if (cnpj.compareTo("99999999999999") == 0) {
  cnpj="00000000000000";
  cnpj = monta(cnpj);
  return "00";
}

if (cnpj.compareTo("00000000000000") == 0) {
  cnpj = monta(cnpj);
  return "00";
}

m = 0; n = 12; f = 11; j = "543298765432";
d1 = calculaDigitoCnpj(cnpj, m, n, f, j);

m = 0; n = 13; f = 11; j = "6543298765432";
d2 = calculaDigitoCnpj(cnpj, m, n, f, j);

n1 = new Integer(d1); n2 = new Integer(d2);
dv = n1.toString() + n2.toString();

return dv;

}

// Digito do CNPJ

protected static int calculaDigitoCnpj(String cnpj, int m, int n, int f, String j) {

int dv = 0, jj, nn;

for (int i = m; i < n; i++) {

jj = Integer.valueOf(j.substring(i, i+1)).intValue();

nn = Integer.valueOf(cnpj.substring(i, i+1)).intValue();

<a href="//System.out.println">//System.out.println</a>("jj e nn = " + jj + " " + nn);
dv += nn * jj;
}

//System.out.println("dv sem modulo = " + dv);

dv = f - (dv % f);
if (dv &gt; 9) {dv = 0;}
return dv;

}

protected static String trataCpf(String cpf) {

String dv;       //digito vericador

Integer n1, n2;
int m = 0; int n = 9; int f = 11;
int d1 = calculaDigitoCpf(cpf, m, n, f);

m = 0; n = 10; f = 12;
int d2 = calculaDigitoCpf(cpf, m, n, f);

n1 = new Integer(d1); n2 = new Integer(d2);
dv = n1.toString() + n2.toString();
return dv;

}

// Digito do CPF

protected static int calculaDigitoCpf(String cpf, int m, int n, int f) {

int dv = 0;

for (int i = m; i < n; i++) {

dv += (Integer.valueOf(cpf.substring(i, i+1)).intValue()) * (f - (i+1));

}

return dv * 10 % 11 % 10;

}
public static void main(String[] args) {

if (args.length <= 0) {

System.err.println(Preciso de um número);

return;

}

if (args.length == 1) {

new CnpjCpf(args[0]);

}

if (args.length == 2) {

new CnpjCpf(args[0], args[1]);

}

}//main

} //classe CNPJ CPF

L

Caraca…que cara insistente meu , String é diferente de char pow…não existe parseInt(char)…

Não existe…
Não existe…
Não existe…

J

pqp!!!

falta de pesquisar?

tentem isso:

int x = Integer.parseInt(String.valueOf(teste.charAt(0)));

veja oq acontece?

Criado 25 de junho de 2003
Ultima resposta 10 de dez. de 2007
Respostas 17
Participantes 8