2015-01-01 5 views
1

как принять символ от пользователя для представления первого алфавита в цвете радуги. т. е. фиолетовый, индиго, синий, зеленый, желтый, оранжевый, красный. Этот символ может быть прописным или строчным. Распечатайте соответствующий цвет на экране. Для любого другого символа печати «Invalid цвета»принять ввод от пользователя и цвет дисплея

+1

А что вы пробовали, что делал/не работает, как ожидалось? Я думаю, что цель этого задания - улучшить свои собственные навыки программирования. Не ваши навыки Stackoverflow :-) – EWit

+0

http://stackoverflow.com/questions/5822384/getting-a-color-from-a-string-input –

ответ

1
Color color; 
try { 
    Field field = Class.forName("java.awt.Color").getField("yellow"); 
    color = (Color)field.get(null); 
} catch (Exception e) { 
    color = null; // Not defined 
} 
0

Я думаю, что это то, что вы хотите

char input='y'; 

// This is NOT the best way, but it is readable 
input=(input+"").toLowerCase().toCharArray()[0]; 

// This is a better approach, but far more difficult to understand 
if(input>=65 && input<=90) input+=32; 

// Edit these colors if you don't like them 
Color v=new Color(128,0,255); // Violet 
Color i=new Color(111,0,255); // Indigo 
Color b=new Color(0,0,255); // Blue 
Color g=new Color(0,255,0); // Green 
Color y=new Color(255,255,0); // Yellow 
Color o=new Color(255,128,0); // Orange 
Color r=new Color(255,0,0); // Red 

// I don't know if this is the best way, but it works and you used the [switch-statement] tag 
Color c=null; 
switch(input) { 
case 'v': 
    c=v; 
    break; 
case 'i': 
    c=i; 
    break; 
case 'b': 
    c=b; 
    break; 
case 'g': 
    c=g; 
    break; 
case 'y': 
    c=y; 
    break; 
case 'o': 
    c=o; 
    break; 
case 'r': 
    c=r; 
    break; 
default: 
    break; 
} 

// Outputting 
if(c==null) { 
    System.out.println("Invalid character"); 
} else { 
    System.out.println("R:"+c.getRed()+" G:"+c.getGreen()+" B:"+c.getBlue()+" A:"+c.getAlpha()); 
} 
Смежные вопросы