Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Xedrox en 13 Septiembre 2010, 03:40 am



Título: Invertir vector (Problema muy pavo)
Publicado por: Xedrox en 13 Septiembre 2010, 03:40 am
Hola que tal, por mas que busco no encuentro el error a lo siguiente, tengo dos TextField y un boton, el primer texfield (text_f) tiene numeros (enteros) separados por un guion "-" y la idea es que al presionar el boton "invertir" el segundo text_field "res" se llene con el vector anterior pero invertido. Aca les dejo el codigo y el error que no lo entiendo :S .

Código:
public void actionPerformed(ActionEvent e)
{

String nums[]=text_f.getText().split("-");
int p[]=new int[nums.length];
int a=0;

for(int i=nums.length;i>0;i--)
{
p[a]=Integer.parseInt(nums[i]);
a++;
res.setText(res.getText()+"-"+p[a]);
}

}

Código:

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 3
at java.actionPerformed(java.java:48)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:253)
at java.awt.Component.processMouseEvent(Component.java:6108)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:5873)
at java.awt.Container.processEvent(Container.java:2105)
at java.awt.Component.dispatchEventImpl(Component.java:4469)
at java.awt.Container.dispatchEventImpl(Container.java:2163)
at java.awt.Component.dispatchEvent(Component.java:4295)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4461)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4125)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4055)
at java.awt.Container.dispatchEventImpl(Container.java:2149)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4295)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:604)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
:huh: :huh:


Título: Re: Invertir vector (Problema muy pavo)
Publicado por: 1mpuls0 en 13 Septiembre 2010, 04:53 am
Hola que tal.

Código
  1. for(int i=nums.length;i>0;i--)

Aquí tu error.

Mas bien es

Código
  1. for(int i=nums.length-1; i>=0; i--)

un saludo



Título: Re: Invertir vector (Problema muy pavo)
Publicado por: Xedrox en 13 Septiembre 2010, 05:44 am
Hola dharius muchísimas +10 gracias.