Je to písmeno nebo není ...

2009-12-11 Tema obsahu Petr Franta
Začaly mi padat testy a po bádání jsem dospěl k tomuto:
Znak háček bez písmene - \u02C7 není v JDK 1.4 znak, ale v JDK 1.6
už znakem je! Asi těch znaků bude více, ale pro mne je to překvapením
...

public class Test {
 /**
  * Test znaku.
  */
 public static void main(String[] args) {
   char ch = '\u02C7';

   System.out.println(Znak:  + ch +   + (int) ch +   +
Character.isLetterOrDigit(ch));
 }
}

C:\Program Files\Java\jdk14\binjava -version
java version 1.4.2_06
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_06-b03)
Java HotSpot(TM) Client VM (build 1.4.2_06-b03, mixed mode)

C:\Program Files\Java\jdk14\binjava Test
Znak: ˇ 711 false

c:\Program Files\Java\jdk16\binjava -version
java version 1.6.0_14
Java(TM) SE Runtime Environment (build 1.6.0_14-b08)
Java HotSpot(TM) Client VM (build 14.0-b16, mixed mode, sharing)

c:\Program Files\Java\jdk16\binjava Test
Znak: ˇ 711 true


RE: Je to písmeno nebo není ...

2009-12-11 Tema obsahu Rudolf PECINOVSKÝ
To bude tím, že se v Javě 5 přecházelo na jinou verzi normy Unicode konkrétně z 
verze 2.1 z roku 1998 (ta ale oproti verzi 2.0, s níž Java začala, přidala 
jenom znak eura) na verzi 4.0 z roku 2003. 

Šestka podle mne implementuje verzi 5.0 z roku 2006. Ta udělala zase pár 
kotrmelců - možná že ta změna interpretace háčku je jedním z nich. Každopádně 
se v šestce třídy pro normalizaci znaků (převod háčko-čárkovaných písmen na 
dvojici znak - diakritika a zpět) přestěhovaly z balíčku sun.text do java.text 
a navíc se jejich metody i trochu změnily včetně požadovaných parametrů.

Pozor - v roce 2010 se chystá Unicode verze 6.0, takže můžeme v příští Javě 
čekat v práci se znaky zase nějaké drobné změny.

Rozpovídal jsem se jenom proto, abyste věděli, že i věc, o níž si člověk myslí, 
že už je dávno usazená, může pořád překvapovat - viz problém s diakritikou.


Preji krasny den
Have a nice day

°
Rudolf  P E C I N O V S K Y

Senior EDU Expert, ICZ a.s.

Associate Professor
Department of information technologies
University of Economics, Prague

Tel:   +420 244 101 764
GSM:   +420 603 330 090
ICQ:158 156 600 
Jabber: pecinov...@jabbim.cz

rud...@pecinovsky.cz 
rudolf.pecinov...@i.cz
°


 -Původní zpráva-
 Od: konference-boun...@java.cz [mailto:konference-boun...@java.cz] za
 uživatele Petr Franta
 Odesláno: pátek 11. prosince 2009 09:59
 Komu: konference@java.cz
 Předmět: Je to písmeno nebo není ...
 
 Začaly mi padat testy a po bádání jsem dospěl k tomuto:
 Znak háček bez písmene - \u02C7 není v JDK 1.4 znak, ale v JDK 1.6
 už znakem je! Asi těch znaků bude více, ale pro mne je to překvapením
 ...
 
 public class Test {
  /**
   * Test znaku.
   */
  public static void main(String[] args) {
char ch = '\u02C7';
 
System.out.println(Znak:  + ch +   + (int) ch +   +
 Character.isLetterOrDigit(ch));
  }
 }
 
 C:\Program Files\Java\jdk14\binjava -version
 java version 1.4.2_06
 Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_06-b03)
 Java HotSpot(TM) Client VM (build 1.4.2_06-b03, mixed mode)
 
 C:\Program Files\Java\jdk14\binjava Test
 Znak: ˇ 711 false
 
 c:\Program Files\Java\jdk16\binjava -version
 java version 1.6.0_14
 Java(TM) SE Runtime Environment (build 1.6.0_14-b08)
 Java HotSpot(TM) Client VM (build 14.0-b16, mixed mode, sharing)
 
 c:\Program Files\Java\jdk16\binjava Test
 Znak: ˇ 711 true
 
 
 __ Informace od ESET NOD32 Antivirus, verze databaze 4677
 (20091210) __
 
 Tuto zpravu proveril ESET NOD32 Antivirus.
 
 http://www.eset.cz
 
 

__ Informace od ESET NOD32 Antivirus, verze databaze 4677 (20091210) 
__

Tuto zpravu proveril ESET NOD32 Antivirus.

http://www.eset.cz