NumberFormat formatter = new DecimalFormat(“0000”); String s = formatter.format(seuCodigo);
R
rbarioni
eu vi esse formatador…
mas ele retorna uma String…preciso do numero em integer…
Marques
Para converter String em int:
int var = Integer.parseInt(“suaString”);
R
rbarioni
eu sei como converter string p/ int, Marques…
mas preciso do numero no formato XXXX numa variavel inteira…nao numa string…
F
franklinbenini
Ave cara, ou eu não entendi nada ou é vc q não entendeu…
Tipo, q diferença faz ? É só vc usar o q o cara falou e armazenar o valor numa String e logo na linha de baixo já converter p/ Inteiro e armazenar na variável inteiro.
Não existe nada impossível de se fazer em Java
R
rbarioni
vc q nao entendeu mesmo…
em rotinas COBOL p/ armazenar no banco em mainframe, TODOS os digitos devem ser preenchidos p/ serem inseridos…
entao preciso de um numero tipo 0020 p/ inserir no banco…
qdo converto p/ inteiro, fico apenas com 20…e isso nao serve p/ mim…
F
franklinbenini
Opa,
Me desculpe, realmente eu não havia entendido corretamente sua pergunta.
Infelizmente eu sou iniciante e não sei como fazer isso q vc quer. Pode ser q seja necessário desenvolver uma rotina própria p/ isso. O problema é p/ desenvolver isto, já q tipos inteiros em Java não começam c/ 0 pelo q eu sei. Mas como já disse nada é impossível de se fazer c/ Java
Um abraço
Franklin
urubatan
para o que você quer, você precisa é da representação String do numero mesmo.
Guilherme_Silveira
um int eh uma primitiva em java
uma String eh uma classe/instancia = objeto.
se voce quer possuir um numero, voce pode armazena-lo numa int. o mesmo que um integer em vb, nao sei como eh em Cobol. em C por exemplo t ambem eh um int.
para trabalhar com digitos a esquerda voce precisa, em todas as linguages q citei, formatar o numero para UMA STRING. isso acontece devido a arquitetura das nossas maquinas. uma int em java tem 32 bits, que sao COMPLETAMENTE USADOS para representar essa int. nao tem espaco extra pra um 0 a esquerda.
se vc converte num formato para String voce vai ter os 0 a esquerda pq a String eh uma array de caracteres (internamente)
a resposta eh que nao existe solucao para o que voce procura
ou voce usa um objeto String que represente o numero temporariamente para a impressao/manipulacao ou passa o int pra frente e trata ele depois. mas sempre tera que ser com string.
o mesmo ocorre com o c e o vb, voce precisa transformar em string… sem escapatorias… eh a maquina, eh a vida (sem querer dizer q a maquina eh a minha vida)
gui
Paulo_Silveira
traduzindo o guilherme:
int i nunca vai imprimir 0020 (a partir da versao 1.5 do java vai dar)
entao voce precisa usar como String mesmo, e coloca no SQL uma String ao inves do inteiro. Nao deve ser problemas.
Ou entao voce faz um if. Tipo, se o numero eh menor do que cem, imprime dois zeros antes, etc…
Umlauf
rbarioni,
Parece que em Java não dá mesmo pra fazer o que vc quer. Vc está querendo passar o int já com 4 dígitos a partir do Java. Vc não pode passar como int mesmo e tratar esse número no comunicador, no COBOL ou no DB2 pra formatar do jeito que vc quer?
Nunca usei COBOL nem DB2. Desculpe se falei besteira.
Guilherme_Silveira
a 1.5 beta sai no fim desse ano como os caras da sun tech days falaram ou nao?
como q eles vao implementar essa formatacao paulo?
R
rbarioni
obrigado a todos pelas respostas…
parece q o comunicador q irei usar eh capaz de fazer essa formatacao…
desculpe algum transtorno.
obrigado
urubatan
me diz uma coisa, você é obrigado a utilizar este intermediario???
se o banco esta armazenado em um DB2, você pode utilizar o driver JDBC do proprio DB2, com certeza vai ser mais rapido e mais fácil