Formatar String

Olá , Galera , tenho um método em VB que recebe um parâmetro String e formata esse valor dessa forma que está abaixo.

vstrCodRef = Format(vstrCodRef, "0000000000")

Pelo o que eu entendi , ele pega esse parâmetro e coloca nesse padrão , que é todos os caracteres juntos.

em java eu estava utilizando algo parecido mas o mesmo não funciona, segue o código.

[code]String cpf = “123.456.789.23”;

	cpf = String.format("00000000000",cpf);
	System.out.println( cpf);[/code]

Invés de imprimir os números da seguinte forma 12345678923, ele imprimi 00000000000.

String.format usa a formatação de acordo com o que está descrito nesta documentação:

http://docs.oracle.com/javase/6/docs/api/java/util/Formatter.html

Em particular, usar “0000000” é um formato que o Java aceita em outra classe ( http://docs.oracle.com/javase/1.5.0/docs/api/java/text/MessageFormat.html ) mas não gosto muito dessa classe, acho mais prático usar o formato “%010d” que é o que você quer usar.

Cuidado, String.format, para formatar números com zeros à esquerda, pede um número mesmo, portanto você tem de tirar os pontos antes e então converter para um long.
O que você mostrou não funciona nem em VB, que eu saiba (esse formato cheio de zeros requer um número, não uma String).