Pattern p = Pattern.compile("\\d+");
Matcher m = p.matcher("java.awt.Color[r=255,g=0,b=0]");
while (m.find()){
System.out.println(m.group());
}
Como é que posso passar cada valor para um int?
Pattern p = Pattern.compile("\\d+");
Matcher m = p.matcher("java.awt.Color[r=255,g=0,b=0]");
while (m.find()){
System.out.println(m.group());
}
Como é que posso passar cada valor para um int?
Pegue o valor de m.group() e converta usando Integer.parseInt(). Não há nenhuma mágica nisso.
mas assim da-me só um int eu queria 3
Como assim “só te dá um int”? Como ficou seu código? Se quiser 3 ints precisará de 3 variáveis (ou um array delas).
Está-me a dar tudo 0, esta a dar o ultimo valor ao 3, o que está mal?
Pattern p = Pattern.compile("\\d");
Matcher m = p.matcher("java.awt.Color[r=255,g=0,b=0]");
int[] ex = new int[3];
while (m.find()){
for(int i = 0; i < ex.length; i++){
ex[i] = Integer.parseInt(m.group());
}
}
System.out.println("1 - " + ex[0] + "\n2 -" + ex[1] + "\n3 - " + ex[2]);
Ah, é que o valor de "group()" só muda se você executar o "find". No seu caso, você teria de fazer algo parecido com o seguinte:
Pattern p = Pattern.compile("\\d+");
Matcher m = p.matcher("java.awt.Color[r=255,g=0,b=0]");
int[] ex = new int[3];
int i = 0;
while (m.find()){
ex[i] = Integer.parseInt (m.group());
i = i + 1;
if (i >= 3) break;
}
Acho que você está a tentar converter um java.awt.Color em um int[3] de maneira muito complicada e lenta. Não é necessário passar o Color para String, e depois usar expressões regulares para passar a String para int[3]. Isso é como você ir de Lisboa para Sintra, mas passando pela cidade do Porto.
http://java.sun.com/javase/6/docs/api/java/awt/Color.html
O correto seria fazer o seguinte:
int ex = new int[3];
Color color = ......;
ex[0] = color.getRed();
ex[1] = color.getGreen();
ex[2] = color.getBlue();
Leia sempre a documentação. Ela vai evitar que você crie soluções complicadas para problemas simples.
Muito obrigado era isso mesmo
Gostei da alanogia visto que vc é do Brasil 
eu estou a ir buscar o java.awt.Color[r=255,g=0,b=0] a um file