2017-06-22 2 views
2

Je ces ensemble de chaînes que je reçois d'un PostgreSQL DB:Comment convertir des caractères spéciaux en Java

"WITH DELIMITER E'\037'" 
"WITH DELIMIER E'\01f'" 
"WITH DELIMITER '|'" 

je besoin d'extraire tout ce qui est entre les guillemets simples et l'utiliser pour diviser et se joindre à une chaîne . Quelque chose le long des lignes:

String delimiter = delimiter.substring(delimiter.indexOf("'")+1, delimiter.indexOf("'",delimiter.indexOf("'")+1)); 
String[] splitString = originalString.split(delimiter); 
//Do something with it... 
String joinedString = StringUtils.join(splitString, delimiter); 

Le problème est que Java prend \ 037 (lire DB dans une chaîne) et il se lit comme \\ 037 (imprimerait comme « \ 037 ») et j'ai besoin \ 037 (le caractère spécial) pour les fonctions de division et de jointure.

J'ai besoin d'un moyen de prendre les valeurs entre guillemets simples (\ 037, \ 01f, |, etc.) et de les convertir en caractères spéciaux.

Ce serait:

String originalString = "\\037" 
String convertedString = "\037" 

En outre, le tuyau (|) est un métacaractère dans Java et pour que je le diviser que je devais faire ce qui suit:

String[] splitString = originalString.split(Pattern.quote("|")); 

Je ne veux pas faire une condition si, je voudrais quelque chose de mieux. Merci d'avance pour votre aide

+0

Wow, vous avez raison! J'ai utilisé la deuxième solution car c'était plus facile à comprendre. Merci pour l'aide! – kiket2ride

Répondre

0

Je pense que vous devriez utiliser this. C'est plus facile et vous ne vous souciez pas du caractère spécial.

+0

Merci pour la réponse N'aurais-je pas le même problème? Si je l'appelle avec la fonction withDelimiter (char délimiteur), je serais toujours obligé d'envoyer le caractère spécial, non? – kiket2ride

+0

Salut Rom! Votre réponse vous semble utile, mais il serait préférable que vous fournissiez un résumé, pas seulement le lien. Cela rend plus rapide pour les lecteurs à évaluer, et il continue d'être utile si le côté lié disparaît ou se déplace. Voir * Fournir un contexte pour les liens * dans la page d'aide [* Comment écrire une bonne réponse? *] (Https://stackoverflow.com/help/how-to-answer). – Lii