+ Ответить в теме
Показано с 1 по 7 из 7

Тема: Преобразовать и сравнить char

  1. #1
    senior developer Dr_Grizzly is on a distinguished road
    Регистрация
    13.09.2004
    Адрес
    Курган
    Возраст
    32
    Сообщений
    406
    Вес репутации
    14

    По умолчанию Преобразовать и сравнить char

    Всем привет! Я тут начинающий программист на java, и зашел в тупик )) Вот такой код написал
    Код java:
    1.   public boolean checkInt(String stroka){
    2.       boolean fnd=false;
    3.       int leng = stroka.length();
    4.       if (leng>0) {
    5.          for (int i = 0; i < leng; i++) {
    6.              for (int k = 48; k<57; k++) {
    7.                if (stroka.charAt(1)==(char)k) {
    8.                 fnd=true;
    9.                }else {
    10.                 fnd=false;
    11.                 }        
    12.              }
    13.          }       
    14.       }
    15.       System.out.println((char)57);
    16.       System.out.println(stroka.charAt(1));
    17.       return fnd;
    18.   }
    Задача простая - найти в строке число, если нашли вернуть true. Решил что нужно перебрать каждый символ в строке и проверять его на значение от 0 до 9. Большой код писать не хочу, т.е можно было это if решить и проблем бы не было, но тут интересней решил подойти )) организовал вложенный цикл от 48 до 57 это код символов от 0 до 9, для проверки даже вывел их значение в конце метода, но чет if (stroka.charAt(1)==(char)k) никак не хочет сравнивать их... не пойму в чем загвоздка
    Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто! ;) Да! Кстати! Ctrl+V реально вставляет!!! ХDD

  2. По умолчанию

     
    Хотите избавиться от рекламы? Зарегистрируйтесь
  3. #2
    Administrator Админ
    system architect
    AiK is on a distinguished road Аватар для AiK
    Регистрация
    13.02.2004
    Адрес
    СПб
    Сообщений
    2,297
    Вес репутации
    80

    По умолчанию Re: Преобразовать и сравнить char

    Character.toChars(57) пробовал?
    Даже самый дурацкий замысел можно воплотить мастерски

  4. #3
    senior developer Dr_Grizzly is on a distinguished road
    Регистрация
    13.09.2004
    Адрес
    Курган
    Возраст
    32
    Сообщений
    406
    Вес репутации
    14

    По умолчанию Re: Преобразовать и сравнить char

    Если это пишу в строке if - if (stroka.charAt(1)==Character.toChars(57)) то получаю такое сообщение - Incompatible operand types char and char[]
    Вроде бы один символ с массивом не хочет сравнивать ))
    Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто! ;) Да! Кстати! Ctrl+V реально вставляет!!! ХDD

  5. #4
    Administrator Админ
    system architect
    AiK is on a distinguished road Аватар для AiK
    Регистрация
    13.02.2004
    Адрес
    СПб
    Сообщений
    2,297
    Вес репутации
    80

    По умолчанию Re: Преобразовать и сравнить char

    Это фишка Java - если при сравнении типы не совпадают, то сравнить не судьба. У класса Character есть метод compare. А так же метод isDigit. Но это не спортивно.

    у тебя, кстати в коде stroka.charAt(1) == - ты всегда с первым символом сравниваешь
    Даже самый дурацкий замысел можно воплотить мастерски

  6. #5
    senior developer Dr_Grizzly is on a distinguished road
    Регистрация
    13.09.2004
    Адрес
    Курган
    Возраст
    32
    Сообщений
    406
    Вес репутации
    14

    По умолчанию Re: Преобразовать и сравнить char

    первый символ я сделал специально, запихнув в значение строки число, чтобы быть уверенным что она не пропускает это. Сработало!
    Код :
    1.  public boolean checkInt(String stroka){
    2.       boolean fnd=false;
    3.       char ck='0';
    4.       int leng = stroka.length();
    5.       if (leng>0) {
    6.          for (int i = 0; i < leng; i++) {
    7.              for (int k = 48; k<57; k++) {
    8.                  ck=(char)k;
    9.                if (Character.compare(stroka.charAt(i), ck)==0) {
    10.                 fnd=true;
    11.                }         
    12.              }
    13.          }       
    14.       }
    15.       System.out.println((char)57);
    16.       System.out.println(stroka.charAt(1));
    17.       return fnd;
    18.   }
    Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто! ;) Да! Кстати! Ctrl+V реально вставляет!!! ХDD

  7. #6
    dummy
    coder
    Андрей Белецкий is on a distinguished road
    Регистрация
    27.09.2017
    Возраст
    29
    Сообщений
    10
    Вес репутации
    0

    По умолчанию Re: Преобразовать и сравнить char

    впервые вижу такой

  8. #7
    dummy SergeyKlimov is on a distinguished road
    Регистрация
    01.01.2018
    Сообщений
    3
    Вес репутации
    0

    По умолчанию Re: Преобразовать и сравнить char

    Приводим к int и сравниваем.
    Код :
    1. public static boolean checkInt(String stroka) {
    2.         int leng = stroka.length();
    3.         if (leng > 0) {
    4.             for (int i = 0; i < leng; i++) {
    5.                 if ((int) stroka.charAt(i) >= 48 &&
    6.                         (int) stroka.charAt(i) <= 57) {
    7.                     return true;
    8.                 }
    9.             }
    10.         }
    11.         return false;
    12.     }
    Последний раз редактировалось SergeyKlimov; 02.01.2018 в 01:38. Причина: Пояснение

+ Ответить в теме

Похожие темы

  1. DELPHI Преобразовать BMP и др. в JPG GDI+ (21kb)
    Простое преобразование основных форматов изображений (BMP, JPEG, GIF, PNG, WMF, EMF, TIFF) из одного в другой при минимальном размере екзешника (...
    от kachkarvv в разделе Delphi и Pascal
  2. Как в С++ преобразовать тип int в тип char
    Подскажите, пожалуйста, как это можно сделать?
    от dmitry1208197320 в разделе C и C++
  3. cannot convert from 'char []' to 'char [20]'
    Помогите пожалуйста! Такой код: class birthday: public date { private: char ima, fam; public: birthday (char im="Vasa", char fa="Ivanov")...
    от MrBrain в разделе C и C++
  4. Как преобразовать строку?
    Подскажите пожалуйста, как преобразовать строку в верхний или нижний регистр, пробовала использовать UpperCase и LowerCase, но чего-то не получается...
    от kati в разделе Delphi и Pascal

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения