에 대한 Apache Commons Lang의 문서에 따르면 StringUtils.isNumeric()
‘१२३’문자열은 숫자입니다.
문서의 실수라고 생각했기 때문에 테스트를 실행하여 진술을 확인했습니다. 나는 아파치 코 몬즈에 따라이 발견 입니다 숫자.
이 문자열이 숫자 인 이유는 무엇입니까? 그 캐릭터들은 무엇을 상징합니까?
답변
“CharSequence에는 유니 코드 숫자 만 포함”( 링크 된 문서 인용)이 있기 때문 입니다.
모든 문자는 Character.isDigit
다음에 대해 true를 반환합니다 .
숫자를 포함하는 일부 유니 코드 문자 범위 :
- ‘\ u0030’~ ‘\ u0039’, ISO-LATIN-1 숫자 ( ‘0’~ ‘9’)
- ‘\ u0660’~ ‘\ u0669’, 아랍어-인도 숫자
- ‘\ u06F0’~ ‘\ u06F9’, 확장 아랍어-인도 숫자
- ‘\ u0966’~ ‘\ u096F’, 데바 나가리 숫자
- ‘\ uFF10’~ ‘\ uFF19’, 전자 숫자
다른 많은 문자 범위에도 숫자가 포함됩니다.
१२३
데바 나가리 숫자 :
답변
기호 १२३ 은 네팔어 또는 힌디어, 구자라트 어 등과 같은 Devanagari 스크립트를 사용하는 다른 언어의 경우 123과 동일 하므로 Apache Commons의 숫자입니다.
답변
Character#getType
캐릭터의 일반 카테고리를 확인하는 데 사용할 수 있습니다 .
System.out.println(Character.DECIMAL_DIGIT_NUMBER == Character.getType('१'));
이렇게하면 true
‘१’이 숫자 라는 “증거” 가 인쇄됩니다 .
이제 ‘१’문자의 유니 코드 값을 살펴 보겠습니다.
System.out.println(Integer.toHexString('१'));
// 967
이 숫자의 범위에 데바 나가리 숫자 :이다 – \u0966
을 통해 \u096F
.
또한 시도하십시오 :
Character.UnicodeBlock block = Character.UnicodeBlock.of('१');
System.out.println(block.toString());
// DEVANAGARI
Devanagari 는 다음과 같습니다.
인도와 네팔의 아부 기다 (알파 음순) 알파벳입니다.
“१२३”은 “123”(기본 라틴 유니 코드)입니다.
독서:
답변
특정 “문자”에 어떤 속성이 있는지 알고 싶다면 (그리고 꽤 많은 속성이 있음) 소스로 직접 이동하십시오 : Unicode.org . 그들은 당신이 알고 싶은 대부분의 것을 보여줄 수있는 조사 도구를 가지고 있습니다.
-
특정 캐릭터의 모든 속성을 보려면 다음을 시도하십시오.
http://unicode.org/cldr/utility/character.jsp?a=१
또는:
-
“십진수”로 분류 된 모든 문자 (예 : 0에서 9까지의 숫자 값)를 보려면 다음을 시도하십시오.
http://unicode.org/cldr/utility/list-unicodeset.jsp?a=[:Numeric_Type=Decimal :]
(550 코드 포인트-현재 / 유니 코드 9.0 기준) -
“십진수가 아닌 숫자”(예 : 분수, 동그라미 등)로 분류 된 모든 문자를 보려면 다음을 시도하십시오.
http://unicode.org/cldr/utility/list-unicodeset.jsp?a=[:Numeric_Type=Numeric :]
(836 코드 포인트-현재 / 유니 코드 9.0 기준) -
“십진수”로 분류 된 모든 문자 (예 : 0에서 9까지의 숫자 값 포함)를 보려면 유니 코드 6.0 (.NET 사용)까지만 표시하려는 경우 를 보려면 보려면 다음을 시도하십시오.
http://unicode.org/cldr/utility/list-unicodeset.jsp?a=[:Numeric_Type=Decimal:]%26[:Age=6.0 :]
(420 코드 포인트-변경해서는 안 됨) -
“십진수”(즉, 0에서 9까지의 숫자 값)로 분류 된 모든 문자를보고 싶지만 유니 코드 6.0 (.NET 사용) 까지만, 기본 다국어 평면에서만 / 보조 문자 없음 ( 즉, 코드 포인트 65535 / U + 0xFFFF) 위에 아무것도없는 경우 다음을 시도하십시오.
http://unicode.org/cldr/utility/list-unicodeset.jsp?a=[:Numeric_Type=Decimal:]%26[:Age=6.0:]%26[:bmp=Yes :]
(350 코드 포인트- -변경해서는 안됩니다.)
기억하기 : 유니 코드 컨소시엄은 소프트웨어가 아닌 사양을 생성합니다. 즉, 가능한 한 정확하게 사양을 구현하는 것은 각 소프트웨어 공급 업체의 몫 입니다. 따라서 HTML, JavaScript, CSS, SQL 등과 마찬가지로 다양한 플랫폼, 언어 등이 다릅니다. 예를 들면, 나는 라틴 문자를 원함으로써 마이크로 소프트의 .NET 프레임 워크에서이 문제를 발견 A-Z
하고 a-z
제대로 것으로 등록하지 않은 – 0x24E9을 통해 코드 0x24B6 포인트를 – char.IsLetter = true
( 여기에 버그 리포트 ). 그리고 이로 인해 TextInfo.ToTitleCase()
메서드를 호출 할 때와 같이 관련 기능에서 예기치 않은 동작이 발생합니다 ( 여기에서 버그 보고서 ).
답변
‘१२३’기호는 실제로 다음과 같이 숫자 값을 나타내는 힌디어 (기본적으로 산스크리트어 즉 데바 나기 리어에서 유래)에서 파생됩니다.
१ 대표 1
२는 2를 나타냅니다.
그리고 마찬가지로