o código é esse que pega as diferenças que geralmente está na frente da letra “v”
d = a string original com numero depois da letra "v" ex: "q5cv5"
s2[i] = modelo sem numero no "v" ex: "q5cv"
char[] charStringA = d.toCharArray();
char[] charStringB = s2[i].toCharArray();
List difference = new ArrayList();
int j = 0;
int differences = 0;
while (j < charStringA.length) {
if (charStringA[j] != charStringB[j - differences]) {
difference.add(charStringA[j]);
differences++;
}
j++;
}
retorna as diferenças:
O grilado é que esse código acima funciona muito bem quando v+numero está no inicio ou no meio da string
mas dá o seguinte erro quando está no final:
Exception in thread “AWT-EventQueue-0” java.lang.ArrayIndexOutOfBoundsException: 4
at chatterbot.reply.similarStringParser(reply.java:163)
at chatterbot.reply.botReply(reply.java:46)
at chatterbot.analyseText.Initialize(analyseText.java:75)
at chatterbot.FChater.jButton1ActionPerformed(FChater.java:135)
at chatterbot.FChater.access$000(FChater.java:23)
at chatterbot.FChater$1.actionPerformed(FChater.java:59)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6263)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6028)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2475)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Alguem pode me ajudar?