Pourquoi Apache Commons, envisager de १२३' numérique?

Selon Apache Commons Lang de la documentation de StringUtils.isNumeric(), la Chaîne " १२३ " est numérique.

Depuis que je croyais que ce pourrait être une erreur dans la documentation, j'ai couru des tests pour vérifier l'état. J'ai trouvé que, selon Apache Commons il est numérique.

Pourquoi cette Chaîne numérique? Que ces personnages représentent?

  • Peut-être qu'ils représentent des chiffres dans certaines langues. Pas toutes les langues utilisent les symboles 0 à 9 pour représenter les chiffres.
  • ce sont 1, 2 et 3 en hindi
  • Vous pouvez obtenir la valeur de l'entier par Integer.parseInt("१२३").
  • "ⅯⅭⅯⅬⅩⅩⅩⅤ".isnumeric() est aussi Vrai (en Python, mais sans doute en Java trop), comme c'est "⅕".isnumeric()
  • Voir aussi: stackoverflow.com/q/40156585/974555
  • étape 1: réaliser que ces personnages ne sont pas dans l'alphabet. étape 2: rendre compte que c'est probablement une autre langue. etape 3: laissez google translate comprendre: translate.google.com/#auto/en/%E0%A5%A7%E0%A5%A8%E0%A5%A9
  • Mais qu'en est "π".isnumeric() ou "e".isnumeric()?
  • Ceux ne sont pas des numéros, ce sont des lettres qui sont populaires pour représenter particulier des constantes. Notez la différence entre ⅯⅭ et MC.
  • C'est pourquoi \d est moins efficace que [0-9]. dois-je utiliser \d ou [0-9] pour correspondre à des chiffres dans une expression rationnelle Perl?
  • Pas en Java. En Java, \d est synonyme de [0-9]. Il ne correspondra pas à la Devanagari chiffres.
  • Ce n'est pas l'Hindi. Il est Devanagari chiffre.
  • Si vous utilisez Firefox, obtenir l'identité des Personnages de l'extension!
  • n'est-ce pas l'Hindi habituellement écrit en Devanagari?
  • Oui, et donc, sont le Marathi, le Bhojpuri, Awadhi, Magahi, Maithili, le Népalais, le Pali, le Konkani, Bodo, le Sindhi et le Sanskrit et beaucoup plus. Devanagari est un script, comme le Latin, l'Hindi, le Marathi sont des langues comme l'anglais.
  • Alors, comment pouvez-Sujan dire que c'est pas l'Hindi (plutôt que “ce n'est pas nécessairement de l'Hindi”)?
  • Bienvenue à Unicode 🙂
  • de son fond de sanskrit, 0 a été inventé dans cette langue, si vous faites une simple recherche google sur le sanskrit numéros, vous obtiendrez cette case à cette référence (2indya.com/2011/06/22/sanskrit-counting-1-to-100)
  • Pourquoi pensez-vous que la documentation était dans l'erreur?
  • GNU Calculatrice (Linux graphique app) reconnaissent également que numérique (cependant, le résultat est montré int Chiffres arabes): १२३+0=123; १२३+100=223; १२३+0=123; १२३+123=246

InformationsquelleAutor Hannes | 2016-10-20