Hogyan hozzunk létre egy sor programozási, útmutatók és példák
A legegyszerűbb módja annak, hogy hozzon létre egy húr - megszervezni a link string típusú, hogy egy string-állandó:
Húr si = "Ez egy string.";
String s2 = „Ez egy hosszú sorban,” +
„Rögzített két sornyi forráskódot”;
Ne felejtsük el, a különbség egy üres string s = „string”. nem tartalmaz semmilyen karaktert, és az üres hivatkozási s karakterlánc = null, nem pont minden sorban és egy nem-objektumot.
A legtöbb helyes módja annak, hogy egy tárgy szemszögéből a PFSZ - az, hogy hívja a kivitelező működését az új. A string osztály biztosítja az Ön számára egy kilenc tervezők:
- string () - létrehoz egy objektumot egy üres string;
- string (karakterlánc str) - az egyik tárgy létrehoz egy másik, hogy a tervező ritkán használják;
- string (StringBuf fer str) - átalakította a COP-Ia BufferString osztály objektum;
- string (byte [] ByteArray) - az objektum létre egy sor bájt ByteArray;
- String (char [] charArray) - létrejön az objektum egy tömb charArray Unicode karakterek;
- String (byte [] ByteArray, int offset, int count) - az objektum létre egy részét a tömb ByteArray bájt indexszámmal kezdődő ofszet és bájtszám tartalmaz;
- String (char [] charArray, int offset, int count) - az azonos, de magában foglalja egy sor Unicode karakterek;
- String (byte [] ByteArray, karakterlánc kódolás) - szimbólumok rögzített egy sor bájt meghatározott Unicode-összhangban a kódolási kódolás;
- String (byte [] ByteArray, int offset, int száma, karakterlánc kódolás) - ugyanaz, de csak egy része a tömb.
A rossz munkát eltolás indexek. szám, illetve a kódolás kódoló kivétel történik.
Kitek felhasználásával ByteArray tömb bájt. célja, hogy hozzon létre Unicode-string tömb byte ASCII-karakterkódolás. Ez a helyzet akkor fordul elő, amikor olvas ASCII-fájl információ kinyerése az adatbázisból vagy az információ továbbítása a hálózaton keresztül.
A legegyszerűbb esetben, a fordító kétbájtos Unicode karakterek felvenni minden byte vezető null bájt. Szerezd meg a tartomány „\ u0000” - „\ u00ff” Unicode kódolás megfelelő kódokat a cirill Latin 1. A szöveg jelenik meg hibásan.
Ha a számítógép, hogy egy helyi telepítés, mint mondják a zsargonban a „helyileg telepített” (locale) (az MS Windows alatt fut a közüzemi területi beállítások a Control Panel), a fordító fogja olvasni ezeket a beállításokat, hozzon létre Unicode karakter megfelel a helyi kódlapot. A eloroszosodott változata MS Windows általában kódlap SR1251.
Ha az eredeti tömb az ASCII-cirill szöveget kódolt SR1251, a Java string jön létre megfelelően. Cirill esnek azok köre '\ u0400' - '\ u04FF' Unicode kódolást.
De van cirill, legalább négy kódolást.
- Az MS-DOS kódolást alkalmazzák SR866.
- A UNIX általánosan használt kódoló KOI8-R.
- Az Apple Macintosh számítógépek használt kódolási MacCyrillic.
- Vannak is nemzetközi cirill kódolás ISO8859-5;
Például, a byte 11100011 (0xE3 hexadecimális formában) van kódolva SR1251 cirill levélben G. kódolt SR866 - írni U. kódolt KOI8-R - Ts levél ISO8859-5 - levélben y. A MacCyrillic - ag
Ha az eredeti cirill ASCII-volt az egyik ilyen karakterkészletek, és a helyi kódolás SR1251, a Unicode-karakter Java string nem egyeznek meg a cirill ábécét.
Ezekben az esetekben használja az utolsó két konstruktőrök, amellyel a kódolási paraméter határozza meg, hogy milyen kód tábla használata a tervező, hogy megteremtse a sorban.
Listing 5.1 ábra a különböző esetekben a felvétel cirill szöveget. Három tömbök bayto'v amely tartalmazza a „Magyarország” három kódolást.
- byteCP1251 tömb tartalmazza a „Magyarország” kódolt SR1251.
- byteSP866 tömb tartalmazza a „Magyarország” a kódolás SR866.
- ByteKOI8R tömb tartalmazza a „Magyarországon” kódoló KOI8-R.
Minden tömb három sort hoztunk létre három kódtáblák.
Listing 5.1. Készítsen sorok cirill
public static void main (String [] args)
Karakterlánc winLikeWin = null, winLikeDOS = null, winLikeUNIX = null;
Karakterlánc dosLikeWin = null, dosLikeDOS = null, dosLikeUNIX = null;
Karakterlánc unixLikeWin = null, unixLikeDOS = null, unixLikeUNIX = null;
Karakterlánc msg = null;
(Byte) 0xD0, (bájt) 0xEE, (bájt) 0xFl,
(Byte) 0xFl, (bájt) 0xES, (bájt) 0xFF
(Byte) 0x90, (bájt) 0xAE, (bájt) 0xE1,
System.out.println (MSG + "alapértelmezett kódolás." + S2);
System.out.println (MSG + "szöveg konstans." + S3);
System.out.println (MSG + "Cp1251 -> Cp1251:" + winLikeWin);
System.out.println (MSG + "Cp1251 -> Cp866." + WinLikeDOS);
System.out.println (MSG + "Cp1251 -> KOI8-R:" + winLikeUNIX);
System.out.println (MSG + "Cp866 -> Cp1251:" + dosLikeWin);
System.out.println (MSG + "Cp866 -> Cp866." + DosLikeDOS);
System.out.println (MSG + "Cp866 -> KOI8-R:" + dosLikeUNIX);
System.out.println (MSG + "KOI8-R -> Cpl251:" + unixLikeWin);
System.out.println (MSG + "KOI8-R -> Cp866." + UnixLikeDOS);
System.out.println (MSG + "KOI8-R -> KOI8-R:" + unixLikeUNIX);
Az első bájt tömbök byteCP1251 konzol megjeleníti három sor. byteCP866 byteKOI8R és átalakítás nélkül Unicode. Ezt úgy érjük el write () osztály FilterOutputStream csomag java.io.
A következő három sor származó Java konzol származó vonal egy sor karakterek []. byteCP866 tömb és sztring konstansok.
A következő sorok tartalmazzák a konvertált konzol tömbök.
Láthatjuk, hogy a konzol helyesen jelenik meg csak egy sor kódolási SR866 összhangban rögzítettek SR1251 kód táblázat.
Mi a baj? Itt hozzájárulásuk az oroszosítást a probléma miatt a következtetésre szimbólum áramot a konzolon vagy egy fájlba.
Amint az 1. fejezetben említettük, a konzolt parancssor MS Windows operációs rendszer megjeleníti a szöveg kódolása SR866.
Annak érdekében, hogy ezt a „” Magyarország „a” átalakítható egy byte tömböt tartalmazó karakterek kódolási SR866, majd át a msg húr.
Ábra. 5.2. Következtetés cirill szöveg fájlba
Mint látható, a cirill néz ki egészen más. Helyes karakterek Unicode Cirill elő ugyanazt a kód táblázat, amely az eredeti tömb írt bájtok.
Oroszosodás kérdéseket tárgyalni fogjuk fejezetében a 9. és 18., de most, vegye figyelembe, hogy amikor létrehoz egy karakterláncot a byte tömb jobb adja meg ugyanazt a cirill karakterkészlet, amely rögzíti a tömbben. Ezután kapsz egy Java string a megfelelő Unicode karaktereket.
A levezetés az azonos karaktersorozat a konzolt, egy fájl vagy hálózaton továbbított jobb konvertálni a Java string a Unicode karaktereket következtetési szabályok a megfelelő helyre.
Egy másik módja, hogy hozzon létre egy húr - hogy használjon két statikus módszer
Ők egy sztring a megadott karakter tömb, és visszaadja azt a munkájuk következtében. Például, végrehajtása után a következő program fragmens
megkapja az objektum s1 „Character” és a tárgy s2 - string „szabad”.