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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.03.2015, 15:31   #1
DoomNight
Пользователь
 
Регистрация: 05.11.2014
Сообщений: 13
По умолчанию Проблемы с Switch

Доброго времени суток, вот код:
Код:
public void fiendRationalVal(int[] arg){
	int[] elementarVal={0,0,0,0,0,0,0,0,0,0};
	String str = " ";
	for(int i =0; i<arg.length;i++){
		str = Integer.toString(arg[i]);
		for(int k=0;k<str.length();k++){
			switch(str[k]){
				case "0": elementarVal[0]++;
					break;
				case "1": elementarVal[1]++;
					break;
				case "2": elementarVal[2]++;
					break;
				case "3": elementarVal[3]++;
					break;
				case "4": elementarVal[4]++;
					break;
				case "5": elementarVal[5]++;
					break;
				case "6": elementarVal[6]++;
					break;
				case "7": elementarVal[7]++;
					break;
				case "8": elementarVal[8]++;
					break;			
				case "9": elementarVal[9]++;
					break;					
			}				
		}
	}	
}
Проблема в том, что код работать не хочит, конструкция switch не принимает, по неизвестным мне причинам эл-ты массива по индексу. То есть switch(str[k]) не работает, ошибка стадии компиляции. если написать просто str, без индексации то нормально работает. Хоть и не так как мне нужно. В чём проблема?
DoomNight вне форума Ответить с цитированием
Старый 12.03.2015, 09:57   #2
buriat
Форумчанин
 
Регистрация: 28.06.2010
Сообщений: 189
По умолчанию

До JDK версии 7 использовать switch с типом String нет возможности. В вашем случае можно String конвертировать в Integer, и использовать значение в switch.
buriat вне форума Ответить с цитированием
Старый 12.03.2015, 12:29   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Непонятно только где автор откопал такой древний JDK. Может у вас просто в настройках проекта в Idea (не знаю есть ли в других IDE такое) стоит Language level JDK 6?
И зачем тут switch вообще?
Код:
elementarVal[Integer.parseInt(str[k])]++;
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 12.03.2015, 13:43   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,708
По умолчанию

Цитата:
Непонятно только где автор откопал такой древний JDK.
Ну, например, на продакшен сервере... там если работают очень редко обновляют и вполне можно встретить openjdk 1.6
p51x вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
switch в c++ qiqimc Помощь студентам 7 04.10.2014 17:23
switch MasterSporta Общие вопросы C/C++ 4 05.04.2012 22:05
C++ Switch Sonny01 Помощь студентам 2 12.11.2010 22:38
switch ололошенько Общие вопросы C/C++ 24 30.09.2010 16:52
switch Dimarik Общие вопросы C/C++ 4 11.04.2010 15:56