replaceFirst doido

Galera…

Tenho um campo preco do tipo double em meu banco mysql e quando faço um select recebo o preço tipo 999.99… dai queria trocar o ponto por uma virgula, dai estou dando o seguinte comando

rs.getString("preco").replaceFirst(".",",");

só que em vez de me retornar 999,99 esta retornando ,99.99

oque estou fazendo de errado?

ReplaceFirst trabalha com regular expressions.

O . é um pattern que significa qualquer char. Ou seja tua linha ali significa "Troca o primeiro char, não importa qual seja, por , "

Você vai ter que usar . ou . dai vai funcionar. Pra saber os padrões da uma olhada na api na classe Pattern ou Matcher, uma delas deve ter a lista.

Valeu Flin… passou despercebido quando li a api… :wink:

O problema acima resolvi resolvi da seguinte forma:

preco.replace('.',','); // trocando char por char

[1/2OFF] Mas olhando o lance de expressão regular, me bateu uma dúvida… como seria pra mim da um replaceAll em todas interrogações de uma string por exemplo? Achei isso na api, mas naum entendi como aplicar:

[quote]POSIX character classes (US-ASCII only)

p{Punct} Punctuation: One of !"#$%&’()*+,-./:;<=>?@[]^_`{|}~
…[/quote]

Roda isso e você vai entender melhor

	public static void main&#40;String&#91;&#93; args&#41; &#123;
		String line = &quot;Ola? Como vai?&quot;;
		String line2 = line.replaceAll&#40;&quot;\\?&quot;, &quot;...&quot;&#41;;
		System.out.println&#40;line + &quot; -&gt; &quot;+line2&#41;;
		
		line = &quot;1000.00&quot;;
		line2 = line.replaceFirst&#40;&quot;\\.&quot;, &quot;,&quot;&#41;;
		System.out.println&#40;line + &quot; -&gt; &quot;+line2&#41;;
	&#125;