Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2010, 00:37   #1
0479
Форумчанин
 
Аватар для 0479
 
Регистрация: 27.09.2009
Сообщений: 153
Восклицание Работа с русским алфавитом

Доброго времени суток.Возник вопрос по поводу того каким образом можно
работать с русским текстом в java.Например нужно получить символ по его номеру т.е.
Код:
int a;
char b;
b=(char)a;
int=160;
System.out.println(b);
Ну и в итоге получаем непонятные крякозябры,хотя должны получить русскую "a".Если кто то сталкивался то подскажите пожалуйста как это обойти можно.

Последний раз редактировалось 0479; 06.11.2010 в 00:40.
0479 вне форума Ответить с цитированием
Старый 06.11.2010, 02:12   #2
0479
Форумчанин
 
Аватар для 0479
 
Регистрация: 27.09.2009
Сообщений: 153
По умолчанию

Нашёл в интернете вот такой вариант.Только вот кажется он малость не работоспособный.Что то с Input stream.

Код:
InputStream is = ..;

int b;
ByteArrayOutputStream baos = new ByteArrayOutputStream();

while( (b=is.read())!=-1 )
  {
   baos.write( b );
  }

// Перекодирование байтов в строку с использованием кодировки по умолчанию

String s = baos.toString();

// Если нужна конкретная кодировка - просто укажите её при вызове toString():
//
// s = baos.toString("Cp1251");
Просто основная проблема в том что мне нужно чтобы выводились символы по коду в int.
И символы с кодами соответствующими английским буквам и символам выводятся а вот русские буквы нет.

Последний раз редактировалось 0479; 06.11.2010 в 02:18.
0479 вне форума Ответить с цитированием
Старый 06.11.2010, 03:33   #3
alexinspir
Новичок
Джуниор
 
Аватар для alexinspir
 
Регистрация: 26.08.2008
Сообщений: 1,010
По умолчанию

Код:
	public static int getInt(char i){
		return (int)i;
	}
	public static char getChar(int i){
		return (char)i;
	}
ромик0: Cколько получают здешние модераторы?
pu4koff: У модераторов сдельная оплата труда. Выдал предупреждение - плюс к премии. Выдал бан - лучший модератор месяца со всеми вытекающими.
alexinspir вне форума Ответить с цитированием
Старый 06.11.2010, 23:05   #4
0479
Форумчанин
 
Аватар для 0479
 
Регистрация: 27.09.2009
Сообщений: 153
По умолчанию

Код:
String dir="c:/";
File f = new File(dir, "out1.txt");
InputStream is = new FileInputStream(f);
int b;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
while( (b=is.read())!=-1 )
  {
   baos.write( b );
  }
String s = baos.toString("Unicode");
System.out.println(s);
Если считывать из файла буквы приведённым выше методом то почему то в полученной строке мы получаем на два бита больше.С чем это может быть связано?
0479 вне форума Ответить с цитированием
Старый 09.11.2010, 23:12   #5
Appmen
Пользователь
 
Регистрация: 09.10.2009
Сообщений: 56
По умолчанию

PrintStream staream = new PrintStream(System.out, false, "Cp866");
staream.println("русский текст");
Appmen вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Шифрование файла алфавитом 0479 Паскаль, Turbo Pascal, PascalABC.NET 3 13.09.2010 23:11
"Шифр Цезаря" на СИ, проблема с русским алфавитом Antowka Помощь студентам 9 30.01.2010 18:32
Проблема с русским ponchikpk Паскаль, Turbo Pascal, PascalABC.NET 12 22.05.2009 18:39
Сортировка за алфавитом $T@LKER Помощь студентам 2 30.03.2009 16:02
Непонятка с русским Antidoc Общие вопросы C/C++ 1 11.08.2008 21:21