0 / 0 / 0
Регистрация: 04.07.2016
Сообщений: 11
1

Работа с char и ввод иероглифов

09.03.2017, 01:03. Показов 2578. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!
У меня возник такой вопрос: мне нужно вывести на экран 3 иероглифа в одной строке без пробелов.
Я делаю:
Java
1
2
3
4
5
6
7
8
public class Solution {
    public static void main(String[] args) {
        char a = '日';
        char b = '本';
        char c = '語';
        System.out.println(a + b + c);
    }
}
Но таким образом иероглифы не выводятся, вместо них появляются число "87983".
Однако, если я введу таким образом:
Java
1
2
3
4
5
6
7
8
public class Solution {
    public static void main(String[] args) {
        char a = '日';
        char b = '本';
        char c = '語';
        System.out.println(a + "" + b + c);
    }
}
т.е добавляю кавычки после первого символа, то иероглифы выводятся в нормальном виде. С чем это связано? Извините, что-то не смог найти ответ на этот вопрос. хотя, возможно, неправильно его формулировал.
Спасибо!

Добавлено через 9 минут
Неправильно иероглифы в теме ввел, вот:
日 本 語
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.03.2017, 01:03
Ответы с готовыми решениями:

Работа со строками - Invalid conversion from 'char' to 'const char*'
#include <iostream> #include <ctype.h> #include <stdio.h> #include <string.h> using namespace...

char ввод\
var s:string; r,g:char; begin read(r,g); s:=r+'x'+'+'+g+'y'; writeln(s); end. почему чар...

Ввод с консоли в *char
Как ввести строку с консоли в переменную типа *char? Вот такой код не работает #include...

Ввод типа char
В программе проводится сравнение элемента string, то беж char, с вводимым char из консоли, но хоть...

3
143 / 115 / 61
Регистрация: 13.01.2016
Сообщений: 305
09.03.2017, 10:28 2
Лучший ответ Сообщение было отмечено pottafa как решение

Решение

pottafa, Заходите на этот сайт, туда копируете ваши иероглифы, узнаете их код в Unicode.
Потом выводите их таким образом:
Java
1
System.out.println("\u0041\u0042\u0043");
Только вместо АВС, как в примере, вставляете найденные коды.
Оператор "+" складывает числа, и если Вы складываете char с другим char или int, то для выполнения операции берется код char'a, то есть 'a' + 1 = 'b'. В случае, если вы используете оператор "+" со строкой, как во второй части Вашего примера, то результатом будет строка - конкатенация входных строк и символов.
1
Эксперт функциональных языков программированияЭксперт Java
4485 / 2720 / 485
Регистрация: 28.04.2012
Сообщений: 8,585
09.03.2017, 14:51 3
Цитата Сообщение от pottafa Посмотреть сообщение
С чем это связано?
С тем, что char --- это число и при их сложении оператором + происходит то же, что и при сложении чисел. А при использовании оператор + со строками выполняется конкатенация.

Цитата Сообщение от pottafa Посмотреть сообщение
Извините, что-то не смог найти ответ на этот вопрос. хотя, возможно, неправильно его формулировал.
http://javajee.com/operator-pl... ng-in-java
1
0 / 0 / 0
Регистрация: 04.07.2016
Сообщений: 11
09.03.2017, 23:02  [ТС] 4
Точно, совершенно не подумал ночью о возможной конкатенации, спасибо большое за объяснение!
0
09.03.2017, 23:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.03.2017, 23:02
Помогаю со студенческими работами здесь

В тип integer ввод char
Например нам дано: var x:integer; begin .... writeln('Введите x'); readln(x);

Цикл пропускает ввод char
Цикл пропускает ввод char. Как исправить? #include <stdio.h> #include <stdlib.h> void main(){...

Ввод данных с клавиатуры. char
Как считать нажатую клавишу и сохранить в char? в паскале это было примерно так: c:=readkey; а как...

Ввод char вместо int
Реализовываю потихоньку стек в java. Дело в том, что в стек я могу заносить только int-значения, а...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru