Hallo, ich habe hier ein Programm welches Probleme verursacht. Ich habe eine Zahlenkombination von der ich zunächst alle Permutationen berechne und dann diese auf drei Stellen begrenze. Nun beginnt der komplizierte Teil. Ich habe nun sehr viele 3er Permutationen. Diese lasse ich einzeln wieder aufteilen und deren Inhalt sortieren. Nun, um die Zahlen sortieren zu können muss ich sie ja in Integer parsen und da liegt mein Problem. Ich weiß nicht mehr was ich noch tun kann um diesen Fehler zu beheben. Ich bekomme immer folgenden Fehler:
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "
21"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at lottomama.actionPerformed(lottomama.java:97)
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)
Hier dann noch mein Code. Die Stelle bei der der Fehler auftritt habe ich mit Kommentaren markiert:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.ScrollPaneConstants;
public class test extends JFrame implements ActionListener {
private JPanel panel;
private JButton ok;
private JTextArea text;
private String str;
private String a;
private String b;
private JScrollPane scroll;
private ArrayList<Integer> intLista;
public test() {
panel = new JPanel();
ok = new JButton("OK");
ok.addActionListener(this);
str = ("21, 22, 23, 24, 25, ");
text = new JTextArea(str, 16, 16);
text.setEditable(false);
scroll = new JScrollPane(text);
scroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
intLista = new ArrayList<Integer>();
panel.add(scroll);
panel.add(ok);
add(panel);
pack();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new test();
}
public void permute(java.util.List<Integer> intList, int k){
for(int i = k; i < intList.size(); i++){
java.util.Collections.swap(intList, i, k);
permute(intList, k+1);
java.util.Collections.swap(intList, k, i);
}
if (k == intList.size() -1){
text.append(Arrays.toString(intList.toArray()) + ", ");
b=text.getText();
b = b.replace( "[", "" );
b = b.replace( "]", "" );
for (int i = 0; i < (intList.size() -3); i++) {
b = b.substring(0, b.length() - 4);
}
text.setText(b + "&" + "\n");
}
}
@Override
public void actionPerformed(ActionEvent arg0) {
int k = 0;
a = text.getText();
text.setText("");
String[] zahlenstring = a.split(", ");
int[] zahlenint = new int[zahlenstring.length];
for(int i=0; i < zahlenstring.length ;i++) {
zahlenint = Integer.parseInt(zahlenstring); }
ArrayList<Integer> intList = new ArrayList<Integer>();
for (int i = 0; i < zahlenint.length; i++) {
intList.add(zahlenint); }
permute(intList, k);
a = text.getText();
a = a.substring(0, a.length() -2);
a.replaceAll("\n", "");
String[] strArrays = a.split("&");
//-----------------------------------------------------------------------------
for (String string : strArrays) {
string = string.substring(0, (string.length() - 2));
String[] intArray = string.split(", ");
for (String stringa : intArray) {
int ints = Integer.parseInt(stringa); //hier
System.out.println(ints);
intLista.add(ints);
}
Collections.sort(intLista);
for (int i = 0;i < intLista.size();i++) {
int j = (Integer)intLista.get(i);
String s = Integer.toString(j);
text.append(s + ", ");
}
text.setText(text.getText() + "&" + "\n");
}
//-----------------------------------------------------------------------------
a = text.getText();
String temp = "";
HashMap<String,String> tc = new HashMap<String,String>();
String[] strArray = a.split("&");
for(String string : strArray) {
if (!tc.containsValue(string)) {
temp = temp + string;
tc.put(string, string);
}
}
text.setText(temp);
}
}
Wenn noch Unklarheiten bestehen dann fragt einfach nochmal nach. Schonmal Danke im voraus.
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "
21"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at lottomama.actionPerformed(lottomama.java:97)
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)
Hier dann noch mein Code. Die Stelle bei der der Fehler auftritt habe ich mit Kommentaren markiert:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.ScrollPaneConstants;
public class test extends JFrame implements ActionListener {
private JPanel panel;
private JButton ok;
private JTextArea text;
private String str;
private String a;
private String b;
private JScrollPane scroll;
private ArrayList<Integer> intLista;
public test() {
panel = new JPanel();
ok = new JButton("OK");
ok.addActionListener(this);
str = ("21, 22, 23, 24, 25, ");
text = new JTextArea(str, 16, 16);
text.setEditable(false);
scroll = new JScrollPane(text);
scroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
intLista = new ArrayList<Integer>();
panel.add(scroll);
panel.add(ok);
add(panel);
pack();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new test();
}
public void permute(java.util.List<Integer> intList, int k){
for(int i = k; i < intList.size(); i++){
java.util.Collections.swap(intList, i, k);
permute(intList, k+1);
java.util.Collections.swap(intList, k, i);
}
if (k == intList.size() -1){
text.append(Arrays.toString(intList.toArray()) + ", ");
b=text.getText();
b = b.replace( "[", "" );
b = b.replace( "]", "" );
for (int i = 0; i < (intList.size() -3); i++) {
b = b.substring(0, b.length() - 4);
}
text.setText(b + "&" + "\n");
}
}
@Override
public void actionPerformed(ActionEvent arg0) {
int k = 0;
a = text.getText();
text.setText("");
String[] zahlenstring = a.split(", ");
int[] zahlenint = new int[zahlenstring.length];
for(int i=0; i < zahlenstring.length ;i++) {
zahlenint = Integer.parseInt(zahlenstring); }
ArrayList<Integer> intList = new ArrayList<Integer>();
for (int i = 0; i < zahlenint.length; i++) {
intList.add(zahlenint); }
permute(intList, k);
a = text.getText();
a = a.substring(0, a.length() -2);
a.replaceAll("\n", "");
String[] strArrays = a.split("&");
//-----------------------------------------------------------------------------
for (String string : strArrays) {
string = string.substring(0, (string.length() - 2));
String[] intArray = string.split(", ");
for (String stringa : intArray) {
int ints = Integer.parseInt(stringa); //hier
System.out.println(ints);
intLista.add(ints);
}
Collections.sort(intLista);
for (int i = 0;i < intLista.size();i++) {
int j = (Integer)intLista.get(i);
String s = Integer.toString(j);
text.append(s + ", ");
}
text.setText(text.getText() + "&" + "\n");
}
//-----------------------------------------------------------------------------
a = text.getText();
String temp = "";
HashMap<String,String> tc = new HashMap<String,String>();
String[] strArray = a.split("&");
for(String string : strArray) {
if (!tc.containsValue(string)) {
temp = temp + string;
tc.put(string, string);
}
}
text.setText(temp);
}
}
Wenn noch Unklarheiten bestehen dann fragt einfach nochmal nach. Schonmal Danke im voraus.