Автор Гілка: JAVA буде підтримувати KOI8-U  (Прочитано 1940 раз)

Відсутній Tikhon

  • Кореспондент
  • ***
  • дописів: 135
  • Карма: +0/-0
  • програміст
JAVA буде підтримувати KOI8-U
« : 2006-02-06 09:53:16 »
 Пані та панове!
Сьогодні на мило прийшла радісна новина від Sun!
Бага 4890726 щодо підтримки Java кодування KOI8-U профіксена!
Release Fixed: mustang(b71)
Нас все таки почули! Ура!  :)
 
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4890726
« Змінено: 2006-02-06 09:54:00 від tikhon »
З повагою....

Відсутній gvy

  • Письменник
  • *****
  • дописів: 576
  • Карма: +0/-0
Re: JAVA буде підтримувати KOI8-U
« Відповідей #1 : 2006-02-06 10:01:09 »
Ура :-)

Відсутній dvstar

  • Новачок
  • *
  • дописів: 13
  • Карма: +0/-0
  • Що новенького?
Re: JAVA буде підтримувати KOI8-U
« Відповідей #2 : 2006-02-06 10:14:33 »
 :)
Дуже добре !
А то навіть Charset providers не вирішував проблему (http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4890726).
Деякі програми (netbeans) з локалью KOI8-U + Charset providers не стартував.
Чекаємо реліз.

Відсутній Сашко Кравчук

  • Графоман
  • ****
  • дописів: 490
  • Карма: +0/-0
  • Debian GNU/Linux
Re: JAVA буде підтримувати KOI8-U
« Відповідей #3 : 2006-02-06 14:48:27 »
Кому маємо дякувати:

Цитата
Thanks in advance, Serhiy Pariev.
Тільки ж от не можу збагнути, навіщо було аж стільки гальмувати?:

Цитата
Submit Date      15-JUL-2003

Iгор(Guest)

  • Гість
Re: JAVA буде підтримувати KOI8-U
« Відповідей #4 : 2006-02-08 10:08:02 »
Краще б зробили нормально сортування - попробуй посортувати українські літери. Шо в лінуху шо у віндовсі - частина літер, шо є і в російській мові сортуються правильно, а от такі літери як "Ї, І, Є..." вилізають у кінець  :(

Відсутній dvstar

  • Новачок
  • *
  • дописів: 13
  • Карма: +0/-0
  • Що новенького?
Re: JAVA буде підтримувати KOI8-U
« Відповідей #5 : 2006-02-08 11:14:28 »
Краще б зробили нормально сортування - попробуй посортувати українські літери. Шо в лінуху шо у віндовсі - частина літер, шо є і в російській мові сортуються правильно, а от такі літери як "Ї, І, Є..." вилізають у кінець  :(
Java робіть сортування юнікоду   :) - тому треба використовуваті сві механізм сортування
------------
package unicorn.sys.format;

/**
 * <p>Title: UniCorn library</p>
 */

import java.util.*;

public class UkStringComparator
    implements Comparator {

  public static final String UkAlphabetStr =
        "АБВГҐДЕЄЖЗИІЇЙКЛМНОПРСТУФХЦЧШЩЬЮЯ" +
        "абвгґдеєжзиіїйклмнопрстуфхцчшщьюя"+
        "'";
  public static final String UkAlphabet =
        "\u0410\u0411\u0412\u0413\u0490\u0414\u0415\u0404\u0416\u0417\u0418"+
        "\u0406\u0407\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421"+
        "\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042c\u042e\u042f"+
        "\u0430\u0431\u0432\u0433\u0491\u0434\u0435\u0454\u0436\u0437\u0438"+
        "\u0456\u0457\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u0440\u0441"+
        "\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044c\u044e\u044f"+
        "\u0027";

  public UkStringComparator() {}

  public int compare(Object thisOString, Object anotherOString) {
    return compareStr( thisOString,  anotherOString);
  }

  public static int compareStr(Object thisOString, Object anotherOString) {

    String thisString    = thisOString.toString();
    String anotherString = anotherOString.toString();

    int len1 = thisString.length();
    int len2 = anotherString.length();
    int n = Math.min(len1, len2);

    char v1[] = thisString.toCharArray();
    char v2[] = anotherString.toCharArray();

    int i = 0; //thisString.offset;
    int j = 0; //anotherString.offset;

    int k = i;
    int lim = n + i;
    int p1=-1,p2=-1;
    while (k < lim) {
      char c1 = v1[k];
      char c2 = v2[k];
      if (c1 != c2) {
        if( (p1=UkAlphabet.indexOf(c1)) >=0 && (p2=UkAlphabet.indexOf(c2))>=0 )
          return UkAlphabet.indexOf(c1) - UkAlphabet.indexOf(c2);
        else
          return c1 - c2;
      }
      k++;
    }

    return len1 - len2;

  }

  public static void main(String[] args) {
    String s1="АБВ";
    String s2="ЄЖЗ";
    Vector v = new Vector();
    v.add("АБВ");v.add("ЄЖЗЕ");v.add("уфх");v.add("єжз");v.add("Aret 001");
    Vector vv = v;
    System.out.println("v ="+ v );
    Collections.sort( v );
    System.out.println("v ="+ v );
    Collections.sort( vv,  new UkStringComparator());
    System.out.println("vv="+ vv );


  }

}
------------

Відсутній syncat

  • Новачок
  • *
  • дописів: 5
  • Карма: +0/-0
  • ping ...
Re: JAVA буде підтримувати KOI8-U
« Відповідей #6 : 2006-02-09 16:42:36 »
dvstar, вельми дякую :)
Щоб зрозуміти що таке рекурсія, треба зпочатку зрозуміти що таке рекурсія...