Pessoal tenho uma string como a descrita abaixo e preciso remover caracteres especiais nela, (exceto o enter) estou usando o java 1.3 portanto expressões regulares não me servem. O que posso utilizar ?
· PREDISPOSICAO MAS COM ASSESSORIA DE MERCADO.
· TESTES DE IMPRESSORA.
O problema ocorre quando gero impressão desta string, que por ser um processo batch (COBOL) dependendo da impressora que direciono o relatório acaba saindo com quebras de linhas a mais devido aos caracteres especiais.
Como faço para descobrir qual char() corresponde ao marcador de parágrafo ? (o ponto no começo da linha) gostaria de saber tb se existe um comando que remova todos os caracteres especiais, deixando apenas letras de A-Z, números de 0-9 e alguns caracteres válidos (±*/!@#$%&(){}[]?/|). ou tenho que fazer replace character a caracter.
· PREDISPOSICAO MAS COM ASSESSORIA DE MERCADO.
· TESTES DE IMPRESSORA.
Cuidado com o operador “+=” e strings.
Montar uma string caracter a caracter usando “+=” é superlento e cria milhares de objetos (Eu sei que é o único jeito de fazer em VB e Javascript, mas Java não é VB nem Javascript).
Se for possível, use um StringBuffer, ou melhor ainda, se você souber exatamente qual o tamanho final da string, use um char[], e depois use new String(char[]).
Por exemplo (complete esta rotina com a sua especificação):
public String limpa (String s) {
char ret[] = new char [s.length()];
for (int i = 0; i < s.length(); ++i) {
if (....) { // bom, você é que sabe o que deve fazer aqui...
ret[i] = s.charAt(i); // copiando o caracter original
else {
ret[i] = ' '; // trocando por alguma coisa, tal como vazio
}
}
return new String(ret);
}
Para saber qual é o código: uma dica é arranjar um editor de texto que tenha um modo binário, como o UltraEdit. Peguei o seu texto e vi que é o código hexadecimal 0xB7.
Se você não tem um editor desses, faça um programa como este, que é supersimples:
class Test166 {
public static void main(String[] args) {
String s = "· PREDISPOSICAO MAS COM ASSESSORIA DE MERCADO";
for (int i = 0; i < s.length(); ++i) {
System.out.println (Integer.toHexString (s.charAt(i)));
}
}
}
A respeito de um método específico para retirar caracteres especiais, desconheço.
Para retirar o caracter específico vc tem de varrer a String inteira. Dessa forma, para outros caracteres que desejar remover, vc terá que fazer o mesmo trabalho.
De uma olhada na documentação da classe String sobre o método trim(), talvez ele te ajude tb.
e para colocar os caracteres especiais o que devo fazer?
no meu caso eu pego os dados de um banco Access e onde tem carácter especial
aparece ?(interrogação) .