Y a-t-il de bonnes raisons de ne pas utiliser \ u0000 comme délimiteur dans une chaîne Java? Je voudrais encoder et décoder la chaîne moi-même. Ceci permet d'enregistrer une liste de chaînes entrées par l'utilisateur (j'imagine que l'entrée doit être saisie?) À une préférence Eclipse et de la lire à nouveau. La liste peut être de taille variable, donc je ne pense pas que je peux enregistrer chaque élément à sa propre préférence.Null u0000 dans Java String?
Répondre
Il existait auparavant des bibliothèques qui traitaient par erreur les chaînes Java avec une terminaison nulle. Je ne sais pas si c'est toujours vrai, mais ça vaut la peine de garder ces choses à l'esprit. Surtout si vous interopez avec des bibliothèques externes qui géreront les chaînes comme étant terminées par un caractère nul.
Eh bien, il y a la possibilité que tout ce qui transforme la chaîne d'une manière ou d'une autre puisse la dépouiller. Oh, et la faible possibilité que vous pourriez vouloir garder des nulls dans l'entrée.
Qu'allez-vous en faire?
Si vous avez besoin de l'analyser plus tard, les fonctions d'analyse de chaîne peuvent ne pas accepter null comme valeur pour le délimiteur.
a TRÈS vrai pour les applications mobiles – sandalone
Si les données restent dans Java, pourquoi n'utilisez-vous pas un tableau ou une liste à la place?
On dirait que vous essayez de l'utiliser pour stocker une liste. Pourquoi ne pas utiliser ArrayList<String>
? Avoir un \u0000
dans une chaîne est mauvais. Envisagez d'utiliser un tableau d'octets. Comme vous le dites pour sauvegarder quelque chose dans les paramètres eclipse, je n'utiliserais pas de NULs intégrées, puisque les fichiers semblent lisibles par l'utilisateur (dans mon ~/.eclipse au moins). Que voulez-vous sauver? Vous pouvez chaîner les éléments ("item 2" "item 2") par exemple. Ne le compliquez pas trop.
Il va être stocké dans une préférence Eclipse, pour la persistance entre les sessions, qui accepte uniquement les chaînes et les primitives. Pourquoi un tableau d'octets avec un 0 serait-il meilleur qu'un String avec \ u0000? – Albert
parce que certaines fonctions peuvent ne pas s'attendre à des NUL embarqués et éventuellement les supprimer. –
Il tente d'enregistrer les arguments de la ligne de commande à lire plus tard. Je pense que le délimiteur devra être quelque chose qui ne peut pas être tapé sur un clavier. – Albert
- 1. Java Servlets: String null ou "null"
- 2. Japonais String en Java
- 3. Java: Treemap - interdire null?
- 4. Comment convertir une collection Groovy String en Java String Array?
- 5. Java isEmpty() non défini pour String?
- 6. Erreur dans Regex for String
- 7. Java génériques Paire <String, String> stockées dans la valeur HashMap pas récupérer key-> correctement
- 8. Écriture dans c-string
- 9. Problème dans String camparisson ...!
- 10. Différence entre NULL et null dans PHP
- 11. Store Dictionnaire <string, string> dans les paramètres d'application
- 12. Stocker le dictionnaire <String, String> dans Session (.NET)
- 13. Java équivalent d'une fonctionnalité Python -> set (string)
- 14. String Java à partir de Carte XY Coordonnées
- 15. Mappage JPA <String, String>
- 16. Mappage Enum from String
- 17. Valeur "Null" dans les requêtes
- 18. string; # dans la liste déroulante
- 19. String Split() - méthode
- 20. IDictionary <string, string> ou NameValueCollection
- 21. Quand utiliser CultureInfo.GetCultureInfo (String) ou CultureInfo.CreateSpecificCulture (String)
- 22. Null dans Flex ComboBox
- 23. WebMethod reçoit null dans les paramètres
- 24. Java Servlet API 2.5 Cookie.getDomain() renvoie toujours la valeur null
- 25. ServiceController.Start (string [])
- 26. Existe-t-il un OutputStream Null en Java?
- 27. String to Array and Back
- 28. getServletContext(). GetAttribute() retourne la valeur null?
- 29. HttpContext.GetGlobalResourceObject retourne toujours null
- 30. Jeton NULL en JavaCC
Merci à Jon Skeet (http://stackoverflow.com/questions/305223/jon-skeet-facts) d'avoir permis que ma réponse soit acceptée. – Dinah