Модераторы: javastic, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> кириллица.toUpperCase(), изменить регистр на кириллитце 
V
    Опции темы
dorogoyIV
Дата 18.7.2007, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

Репутация: нет
Всего: 46



Код

String s="абвгд_abcd";
System.out.println(s.toUpperCase());

у русских букв не повышается регистр. 
может быть есть реализации в MIDP ?
PM MAIL   Вверх
W0LF
Дата 18.7.2007, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


alexander lonsky
***


Профиль
Группа: Участник
Сообщений: 1164
Регистрация: 9.2.2006
Где: Ukraine.Dnepropet rovsk

Репутация: 19
Всего: 20



есть только реализация CLDC, которую ты юзаешь
Цитата

 String  toUpperCase()
          Converts all of the characters in this String to upper case.

а в MIDP  такой реализации нет


--------------------
iOS developer
PM MAIL WWW Skype GTalk   Вверх
dorogoyIV
Дата 18.7.2007, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

Репутация: нет
Всего: 46



мне не понятно. во первых я не понимаю разницу между CLDC и MIDP, где можно почитать русский ресурс? и во вторых: как все таки повысить (или понизить) регистр русских букв?
PM MAIL   Вверх
math64
Дата 19.7.2007, 08:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 8
Всего: 72



public static char toUpperCase(char ch)
Converts the character argument to uppercase; if the character has no uppercase equivalent, the character itself is returned.
Note that by default CLDC only supports the ISO Latin-1 range of characters.

В твоём телефоне нет русской локали, придётся делать вручную:
Код

static final String RUSUP = "АБВГДЕЁ...";
static final String RUSLO = "абвгдеё...";
String toUpperRus(String s) {
  char[] c = new char[s.length()];
  for(int i=0; i < c.length;i++) {
     int j = indexOf(RUSLO, s.charAt(i));
     if (j < 0)
       c[i] = s.charAt(i);
     else
       c[i] = RUSUP.charAt(j);
  }
  return new String(c);
}


PM   Вверх
Shushpanchik
Дата 19.7.2007, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 17.7.2007
Где: Россия, г. Пенза

Репутация: 1
Всего: 1



Мне кажется, что я могу предложить способ более эффективный, чем предложенный math64.

В наборе символов Юникода кириллические (и латинские) символы нижнего регистра следуют сразу за символами верхнего регистра: А (0х0410), ... , Я (0х042F), а (0х0430), ... , я (0х44F).
То есть, если нам надо из символа нижнего регистра получить символ верхнего регистра, мы просто отнимаем от его кода 0х20 и получаем код нужного нам символа.

Пример метода:
Код

String toUpperCase(String strSrc)
{
  char[] chDest = new char[strSrc.length()];
  for (int i = 0; i <strSrc.length(); i++)
  {
    chDest[i] = (char) (strSrc.charAt(i) - 0x20);
  }
  return new String(chDest);
}


Только надо в этот метод добавить проверку того, является ли символ знаком алфавита или знаком препинания, пробелом и пр.
Ну с этой задачей я думаю ты справишься.
P.S.: Стандартное виндовское приложение Таблица символов тебе поможет  smile 
PM MAIL WWW ICQ   Вверх
dorogoyIV
Дата 19.7.2007, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

Репутация: нет
Всего: 46



math64
Код

int j = indexOf(RUSLO, s.charAt(i));

кажется здесь ошибка. у String нет такого метода charAt() в J2ME
PM MAIL   Вверх
Antropoid
Дата 19.7.2007, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 786
Регистрация: 1.6.2006
Где: &Ukraine==Ode ssa

Репутация: 13
Всего: 16



Цитата(dorogoyIV @  19.7.2007,  14:03 Найти цитируемый пост)
кажется здесь ошибка. у String нет такого метода charAt() в J2ME

а вот и есть
charAt
public char charAt(int index)
Returns the character at the specified index. An index ranges from 0 to length() - 1. The first character of the sequence is at index 0, the next at index 1, and so on, as for array indexing.



--------------------
user posted image
Задыхаясь от восторга заниматься чепухой. 
PM MAIL   Вверх
dorogoyIV
Дата 19.7.2007, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

Репутация: нет
Всего: 46



Antropoid,  smile String, повнимательней прочитай. у char есть. J2ME

==============================
извиняюсь, это я был невнимательным  smile . но почему то компилятор ругается smile 

Это сообщение отредактировал(а) dorogoyIV - 19.7.2007, 23:51
PM MAIL   Вверх
dorogoyIV
Дата 20.7.2007, 02:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

Репутация: нет
Всего: 46



все хорошо, но возникает другая заморочка - с кодировками  smile .
проще уже сделать replace()  smile 
PM MAIL   Вверх
math64
Дата 20.7.2007, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 8
Всего: 72



Цитата(dorogoyIV @  19.7.2007,  14:03 Найти цитируемый пост)
math64, 
Выделить всёкод Java
1:
    
int j = indexOf(RUSLO, s.charAt(i));

кажется здесь ошибка. у String нет такого метода charAt() в J2ME 

здесь ошибка есть но другая, нужно:
Код

int j = RUSLO.indexOf(s.charAt(i));

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




[ Время генерации скрипта: 0.0737 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.