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

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Преобразовать и сравнить char

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

shdhdh » 15 апр 2018, 15:14

Попробуйте вместо if*(stroka.charAt(1)==(char)k)* написать if*(stroka.charAt(1).equals((char)k))*

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

SergeyKlimov » 02 янв 2018, 01:37

Приводим к int и сравниваем.

Код: Выделить всё

public static boolean checkInt(String stroka) {
		int leng = stroka.length();
		if (leng > 0) {
			for (int i = 0; i < leng; i++) {
				if ((int) stroka.charAt(i) >= 48 && 
						(int) stroka.charAt(i) <= 57) {
					return true;
				}
			}
		}
		return false;
	}

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

SergeyKlimov » 02 янв 2018, 01:31

public class IntParsing {

public static void main(String[] args) {
System.out.println(checkInt("0tripg"));
}

public static boolean checkInt(String stroka) {
int leng = stroka.length();
if (leng > 0) {
for (int i = 0; i < leng; i++) {
if ((int) stroka.charAt(i) >= 48 &&
(int) stroka.charAt(i) <= 57) {
return true;
}
}
}
return false;
}

}

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

Андрей Белецкий » 27 сен 2017, 14:08

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

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

Dr_Grizzly » 17 ноя 2016, 09:57

первый символ я сделал специально, запихнув в значение строки число, чтобы быть уверенным что она не пропускает это. Сработало!

Код: Выделить всё

 public boolean checkInt(String stroka){
	  boolean fnd=false;
	  char ck='0';
	  int leng = stroka.length();
	  if (leng>0) {
		 for (int i = 0; i < leng; i++) {
			 for (int k = 48; k<57; k++) {
				 ck=(char)k;
		       if (Character.compare(stroka.charAt(i), ck)==0) {
  		    	fnd=true;
		       }		  
		     }
		 }		 
	  } 
	  System.out.println((char)57);
	  System.out.println(stroka.charAt(1));
	  return fnd;
  }

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

AiK » 17 ноя 2016, 09:16

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

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

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

Dr_Grizzly » 17 ноя 2016, 07:46

Если это пишу в строке if - if (stroka.charAt(1)==Character.toChars(57)) то получаю такое сообщение - Incompatible operand types char and char[]
Вроде бы один символ с массивом не хочет сравнивать ))

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

AiK » 16 ноя 2016, 22:33

Character.toChars(57) пробовал?

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

Dr_Grizzly » 16 ноя 2016, 07:57

Всем привет! Я тут начинающий программист на java, и зашел в тупик )) Вот такой код написал

Код: Выделить всё

  public boolean checkInt(String stroka){
	  boolean fnd=false;
	  int leng = stroka.length();
	  if (leng>0) {
		 for (int i = 0; i < leng; i++) {
			 for (int k = 48; k<57; k++) {
		       if (stroka.charAt(1)==(char)k) {
  		    	fnd=true;
		       }else {
		    	fnd=false;
		        }		  
		     }
		 }		 
	  } 
	  System.out.println((char)57);
	  System.out.println(stroka.charAt(1));
	  return fnd;
  }
Задача простая - найти в строке число, если нашли вернуть true. Решил что нужно перебрать каждый символ в строке и проверять его на значение от 0 до 9. Большой код писать не хочу, т.е можно было это if решить и проблем бы не было, но тут интересней решил подойти )) организовал вложенный цикл от 48 до 57 это код символов от 0 до 9, для проверки даже вывел их значение в конце метода, но чет if (stroka.charAt(1)==(char)k) никак не хочет сравнивать их... не пойму в чем загвоздка

Вернуться к началу