1
I am making a condition in the execution of a search in Java, what happens is that I cannot have blank space, asterisk(*) or question mark(?) as the first character of the search. However Java is returning me the following error when I leave the field blank:
Exception in thread "AWT-EventQueue-0" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(Unknown Source)
at main.Princ$4.actionPerformed(Princ.java:255)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Condition of line 255:
if (Character.toString(txtConteudo.getText().charAt(0))
.equals(" ")
|| Character.toString(txtConteudo.getText().charAt(0))
.equals("")
|| Character.toString(txtConteudo.getText().charAt(0))
.equals("?")
|| Character.toString(txtConteudo.getText().charAt(0))
.equals("*")) {
JOptionPane
.showMessageDialog(
panel,
"O campo de busca não pode estar vazio ou possuir \"?\", \"*\" ou espaço em branco como primeiro caracter.");
} else {
// executa a busca
}
Wouldn’t that blow up the same way? Because if there is no char at position 0, when performing the method it would throw a stringindexoutofboundsexception, no?
– Marciano.Andrade
@Pauloroberto as his suggestion in the first line avoids the exception? He will continue trying to access a position that does not exist. The only answer so far answers the question correctly.
– Math
Oops, sorry. I will post a better worded reply and delete my comment.
– Paulo Roberto Rosa
I posted an answer explaining better what I meant, it was very simple @Strokes
– Paulo Roberto Rosa