Re: [java-list] Valores por extenso

2001-12-04 Por tôpico Carolina Diniz Cunha

Oi,

tenho esta anexada aí..


Original Message Follows
From: "Daniel Brazil" <[EMAIL PROTECTED]>
Reply-To: [EMAIL PROTECTED]
To: <[EMAIL PROTECTED]>
Subject: Re: [java-list] Valores por extenso
Date: Mon, 3 Dec 2001 22:28:05 -0300

Oi Paulo,

Tem alguma coisa que pode ajudar no endereco 
http://sites.netscape.net/brazildaniel/jmj.htm, em informatica/java,  espero 
ajudar!

Daniel Brazil


   - Original Message -
   From: Paulo Roberto B. Medeiros
   To: [EMAIL PROTECTED]
   Sent: Monday, December 03, 2001 3:54 PM
   Subject: [java-list] Valores por extenso


   Pessoal,

   Estou precisando de uma função para gerar valores por extenso em Java.
   Alguém tem?

   Agradeço antecipadamente.

   Paulo.



_
Chegou o novo MSN Explorer. Instale já. É gratuito! 
http://explorer.msn.com.br


  public String f_extenso(String as_valor,boolean feminino)
  {
// Descrição : Função para descrever determinado valor numérico em
// texto extenso.
//
// Sintax: f_Extenso (as_valor)
//
// Argumentos: as_valor -> String contendo o número que se deseja
// descrever em texto extenso.
//
// Retorno...: Texto por extenso do valor numérico.
//

//

String   ls_und_val[ ], ls_dez_val[ ], ls_cen_val[ ], ls_mil_val[ ],
 ls_valor="", ls_txt_extenso="", ls_grp_extenso="" ;
int  li_tam=0, li_numgrp_3=0, li_i=0, li_posgrp_3=0,
 li_valgrp=0,li_digito=0,li_id_mil=0, li_contgrp=0 ;


// Preenchimento dos Vetores para pesquisa do texto descritivo para
// cada fator numérico, diretamente sem teste ou condições...

ls_und_val= new String[10];
ls_und_val[0] = " 0"  ;
ls_und_val[1] = " UM"  ;
ls_und_val[2] =   " DOIS"  ;
ls_und_val[3] =   " TRES"  ;
ls_und_val[4] = " QUATRO"  ;
ls_und_val[5] =  " CINCO"  ;
ls_und_val[6] =   " SEIS"  ;
ls_und_val[7] =   " SETE"  ;
ls_und_val[8] =   " OITO"  ;
ls_und_val[9] =   " NOVE"  ;

ls_dez_val = new String[20];
ls_dez_val[0] =" 0" ;
ls_dez_val[1] =" 0" ;
ls_dez_val[10] =" DEZ" ;
ls_dez_val[ 2] =  " VINTE" ;
ls_dez_val[ 3] = " TRINTA" ;
ls_dez_val[ 4] =   " QUARENTA" ;
ls_dez_val[ 5] =  " CINQUENTA" ;
ls_dez_val[ 6] =   " SESSENTA" ;
ls_dez_val[ 7] =" SETENTA" ;
ls_dez_val[ 8] =" OITENTA" ;
ls_dez_val[ 9] =" NOVENTA" ;
ls_dez_val[11] =   " ONZE" ;
ls_dez_val[12] =   " DOZE" ;
ls_dez_val[13] =  " TREZE" ;
ls_dez_val[14] =   " QUATORZE" ;
ls_dez_val[15] = " QUINZE" ;
ls_dez_val[16] =  " DEZESSEIS" ;
ls_dez_val[17] =  " DEZESSETE" ;
ls_dez_val[18] =" DEZOITO" ;
ls_dez_val[19] =   " DEZENOVE" ;

ls_cen_val = new String[12];
ls_cen_val[ 0] =  " 0" ;
ls_cen_val[ 1] =  " CEM" ;
ls_cen_val[ 2] = " DUZENTOS" ;
ls_cen_val[ 3] =" TREZENTOS" ;
ls_cen_val[ 4] = " QUATROCENTOS" ;
ls_cen_val[ 5] =   " QUINHENTOS" ;
ls_cen_val[ 6] =   " SEISCENTOS" ;
ls_cen_val[ 7] =   " SETECENTOS" ;
ls_cen_val[ 8] =   " OITOCENTOS" ;
ls_cen_val[ 9] =   " NOVECENTOS" ;
ls_cen_val[11] =" CENTO" ;

ls_mil_val=new String[16];
ls_mil_val[ 0] =  "0"  ;
ls_mil_val[ 6] =  "0"  ;
ls_mil_val[ 7] =  "0"  ;
ls_mil_val[ 8] =  "0"  ;
ls_mil_val[ 9] =  "0"  ;
ls_mil_val[10] =  "0"  ;

ls_mil_val[ 1] =  ""  ;
ls_mil_val[ 2] =   " MIL" ;
ls_mil_val[ 3] =" MILHAO" ;
ls_mil_val[ 4] =" BILHAO" ;
ls_mil_val[ 5] =   " TRILHAO" ;


ls_mil_val[11] =  ""  ;
ls_mil_val[12] =   " MIL" ;
ls_mil_val[13] =   " MILHÕES" ;
ls_mil_val[14] =   " BILHÕES" ;
ls_mil_val[15] =  " TRILHÕES" ;

if(feminino)
{
  ls_und_val[1] =" UMA"  ;
  ls_und_val[2] =   " DUAS"  ;
}

try
{

  // Calcula o número de grupos de 3 dígitos que o valor possui,
  // pois a cada grupo, a descrição do valor segue o mesmo padrão.
  as_valor = (new 
Integer(Float.valueOf(as_valor).i

Re: [java-list] Valores por extenso

2001-12-04 Por tôpico Luiz Ricardo

Bom,

aqui vai uma classe q faz isso. Para testar, execute:
Extenso 

Luiz Ricardo

> "Paulo Roberto B. Medeiros" wrote:
> 
> Pessoal,
> 
> Estou precisando de uma função para gerar valores por extenso em Java.
> Alguém tem?
> 
> Agradeço antecipadamente.
> 
> Paulo.
>

/**
 * @author Luiz Ricardo Belem Santos - 2001
 */

public class Extenso {
private static final String[] unidade = { "um", "dois", "três", "quatro",
"cinco", "seis", "sete", "oito", "novo", "dez", "onze", "doze", "treze",
"quatorze", "quinze", "dezesseis", "dezessete", "dezoito", "dezenove" };

private static final String[] dezena = { "vinte", "trinta", "quarenta",
"cinquenta", "sessenta", "setenta", "oitenta", "noventa" };

private static final String[] centena = {"cento", "duzentos", "trezentos",
"quatrocentos", "quinhentos", "seiscentos", "setecentos", "oitocentos",
"novecentos" };

private static final String[] casa = {"mil", "milhão(ões)", "bilhão(ões)",
"trilhão(ões)", "quatrilhão(ões)", "quintilhão(ões)", "sextilhão(ões)", 
"septilhão(ões)" };

private String number;

public Extenso(String number) {
this.number = number;
}

public String escrevaExtenso() {
int resto = number.length() % 3;
int quociente = number.length() / 3;
int numIteracoes = (resto == 0) ? quociente : quociente + 1;
StringBuffer result = new StringBuffer();

for (int i = 0; i < numIteracoes; i++) {
String str = "";

int tam = (resto != 0 && i == 0) ? resto  : 3;
str = number.substring(0, tam);
number = number.substring(tam, number.length());

if (str.length() == 1) {
result.append(escreverUnidade(str));
} else if (str.length() == 2) {
result.append(escreverDezena(str));
} else if (str.length() == 3) {
result.append(escreverCentena(str));
}

if (i < numIteracoes - 1) {
result.append(" ").append(casa[numIteracoes - 2 - i]);
if (!number.startsWith("0")) {
result.append(" e ");
}
}
}

return result.toString();
}

private String escreverUnidade(String str) {
return unidade[Integer.parseInt(str) - 1];
}

private String escreverDezena(String str) {
StringBuffer sb = new StringBuffer();

if (str.startsWith("1")) {
sb.append(escreverUnidade(str));
} else {
if (!str.startsWith("0")) {
int ind = Integer.parseInt(str.substring(0, 1));
sb.append(dezena[ind - 2]);
}
if (str.charAt(1) != '0') {
int ind = Integer.parseInt(str.substring(1, 2));
if (!str.startsWith("0")) {
sb.append(" e ");
}
sb.append(unidade[ind - 1]);
}
}

return sb.toString();
}

private String escreverCentena(String str) {
StringBuffer sb = new StringBuffer();

if (str.equalsIgnoreCase("100")) {
sb.append("cem");
} else {
if (!str.startsWith("0")) {
int ind = Integer.parseInt(str.substring(0,1));
sb.append(centena[ind - 1]);
}
if (!str.endsWith("00")) {
sb.append(" e ").append(escreverDezena(str.substring(1,3)));
}
}

return sb.toString();
}

public static void main(String[] args) {
Extenso e = new Extenso(args[0]);
System.out.println(e.escrevaExtenso());
}
}



-- LISTA SOUJAVA 
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-


RES: [java-list] Valores por extenso

2001-12-04 Por tôpico Sergio Eduardo Rodrigues



Esta 
rotina tem mais de um ano, mas acho que serve.
 
Procure o main() tem um exemplo de utilização, para testar em prompt 
utilize :
 
java 
com.mds.util.Extenso 
 
 
 
Sérgio 
E. Rodrigues

  -Mensagem original-De: Paulo Roberto B. Medeiros 
  [mailto:[EMAIL PROTECTED]]Enviada em: segunda-feira, 3 de 
  dezembro de 2001 16:54Para: 
  [EMAIL PROTECTED]Assunto: [java-list] Valores por 
  extenso
  Pessoal,
   
  Estou precisando de uma função para gerar 
  valores por extenso em Java.
  Alguém tem?
   
  Agradeço antecipadamente.
   
  Paulo.
   


Extenso.java
Description: JavaScript source

-- LISTA SOUJAVA 
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-


Re: [java-list] Valores por extenso

2001-12-04 Por tôpico Daniel Brazil



Oi Paulo,
 
Tem alguma coisa que pode ajudar no 
endereco http://sites.netscape.net/brazildaniel/jmj.htm, em 
informatica/java,  espero ajudar!
 
Daniel Brazil
 
 

  - Original Message - 
  From: 
  Paulo Roberto B. Medeiros 
  To: [EMAIL PROTECTED] 
  Sent: Monday, December 03, 2001 3:54 
  PM
  Subject: [java-list] Valores por 
  extenso
  
  Pessoal,
   
  Estou precisando de uma função para gerar 
  valores por extenso em Java.
  Alguém tem?
   
  Agradeço antecipadamente.
   
  Paulo.
   


[java-list] Valores por extenso

2001-12-03 Por tôpico Paulo Roberto B. Medeiros



Pessoal,
 
Estou precisando de uma função para gerar 
valores por extenso em Java.
Alguém tem?
 
Agradeço antecipadamente.
 
Paulo.