Meine Fragensammlung

Status
Nicht offen für weitere Antworten.

Schandro

Top Contributor
Hallo,

da ich alls Anfänger sehr viele Fragen habe und für jede nicht extra einen neuen Thread aufmachen möchte, würde ich diese gerne alle hier hineinschreiben (ich guck natürlich vorher trotzdem in google und in ein Java Handbuch und mach ungefähr 30 verschiedene Versionen des Codes, nur leider hilft das meistens nix 🙁 )

Code:
import java.util.*; 
public class test2
{ 
  public static void main(String [] args) 
  { 
Scanner eingabe=new Scanner(System.in); 
String zahl;
zahl=eingabe.nextLine(); 

if (zahl.charAt(0) == 1)
System.out.println("Es geht!");
}
}

Warum kommt bei diesen "Programm" nie das "Es geht!", auch wenn man eine 1 eingibt?
 
Ich würde es mal so probieren:



import java.util.*;

public class test2 {
public static void main(String[] args) {

Scanner eingabe = new Scanner(System.in);
String zahl = eingabe.nextLine();


if (zahl.equals("1"))
System.out.println("Es geht!");
}
}
 
Wenn schon ein Scanner benutzt wird, geht auch

Code:
if (eingabe.nextInt() == 1) {
 
Danke an alle. Ich hab einfach die ' ' dazugeschrieben, dann gings ohne Probleme.

Meine zweite Frage ist für den folgenden Code:

Code:
import java.util.*; 
public class a110
{ 
  public static void main(String [] args) 
  { 
Scanner eingabe=new Scanner(System.in); 

String name;      
name=eingabe.nextLine(); 

  name=name.replace('a', '1'); 
  name=name.replace('j', '1'); 
  name=name.replace('s', '1');        
  name=name.replace('A', '1'); 
  name=name.replace('J', '1'); 
  name=name.replace('S', '1'); 
  name=name.replace('b', '2'); 
  name=name.replace('k', '2'); 
  name=name.replace('t', '2');        
  name=name.replace('B', '2'); 
  name=name.replace('K', '2'); 
  name=name.replace('T', '2'); 
  name=name.replace('c', '3'); 
  name=name.replace('l', '3'); 
  name=name.replace('u', '3');        
  name=name.replace('C', '3'); 
  name=name.replace('L', '3'); 
  name=name.replace('U', '3'); 
  name=name.replace('d', '4'); 
  name=name.replace('m', '4'); 
  name=name.replace('v', '4');        
  name=name.replace('D', '4'); 
  name=name.replace('M', '4'); 
  name=name.replace('V', '4');
  name=name.replace('e', '5'); 
  name=name.replace('n', '5'); 
  name=name.replace('w', '5');        
  name=name.replace('E', '5'); 
  name=name.replace('N', '5'); 
  name=name.replace('W', '5');  
  name=name.replace('f', '6'); 
  name=name.replace('o', '6'); 
  name=name.replace('x', '6');        
  name=name.replace('F', '6'); 
  name=name.replace('O', '6'); 
  name=name.replace('X', '6'); 
  name=name.replace('g', '7'); 
  name=name.replace('p', '7'); 
  name=name.replace('y', '7');        
  name=name.replace('G', '7'); 
  name=name.replace('P', '7'); 
  name=name.replace('Y', '7');
  name=name.replace('h', '8'); 
  name=name.replace('q', '8'); 
  name=name.replace('z', '8');        
  name=name.replace('H', '8'); 
  name=name.replace('Q', '8'); 
  name=name.replace('Z', '8');
  name=name.replace('i', '9'); 
  name=name.replace('r', '9'); 
  name=name.replace('I', '9');        
  name=name.replace('R', '9'); 
System.out.println(name);
  name=name.replace(' ', '0');  

int erstes;
erstes = name.length();
int zweites;
zweites = name.length();

for (int indexL = 0;indexL < name.length();++indexL) {
if (name.charAt(indexL) == '0')
if (erstes <name.length())
zweites = indexL;
else
erstes = indexL;
;}

String ersteswort;
ersteswort = name.substring(0,erstes);
String zweiteswort;
zweiteswort = name.substring(erstes+1,zweites);
String dritteswort;
dritteswort = name.substring(zweites+1,name.length()+1);

long qs1;
if (ersteswort.length()<2)
qs1 = 0;
else
{ 
long zahl = Long.parseLong(ersteswort);
qs1 = zahl%9; 
if (qs1==0) qs1=9;} 

if (qs1 == '0')
System.out.println(" ");
else
System.out.println("Quersumme 1: "+qs1);


long qs2;
if (zweiteswort.length()<2)
qs2 = 0;
else
{ 
long zahl2 = Long.parseLong(zweiteswort);
qs2 = zahl2%9; 
if (qs2==0) qs2=9;} 

if (qs2 == '0')
System.out.println(" ");
else
System.out.println("Quersumme 2: "+qs2);

long qs3;
if (dritteswort.length()<2)
qs3 = 0;
else
{ 
long zahl = Long.parseLong(dritteswort);
qs3 = zahl%9; 
if (qs3==0) qs3=9;} 

if (qs3 == '0')
System.out.println(" ");
else
System.out.println("Quersumme 3: "+qs3);
}
}

Das hier ist eigentlich die Fortsetzung aus dem "Ersetzen von Buchstaben in einer readLine" Thread. Der Code sollte so funktionieren:
Der Benutzer gibt einen Namen ein.

Bei z.b. Hans würde kommen:
1265
Quersumme 1: 3

Bei z.b. Hans Peter:
1452 57642
Quersumme 1: 2
Quersumme 2: 8

Und bei z.b. Hans Peter Maier:
1264 45321 58346
Quersumme 1: 5
Quersumme 2: 9
Quersumme 3: 1

Die Zahlen stimmen bei diesem Bsp. nicht, die habe ich nämlich gerade erfunden.

Der Code wandelt also alle Buchstaben in die entsprechenden Zahlen um, gibt diese aus, dann ersetzt er die Leerzeichen durch nullen um besser rechnen zu können. Danach läuft die Schleife um in der Variable "erstes" die Position des ersten Leerzeichens reinzuschreiben und bei "zweitens" die positon des zweiten Leerzeichens. Wenn kein entsprechendes Leerzeichen vorhanden ist, dann ist erstes bzw. zweites die Länge von "name". Dadurch wird dann das erste, zweite und dritte Wort definiert. Danach werden die Quersummen berechnet und, falls vorhanden, auch ausgegeben.

Beim benutzen des "Programmes" kommt aber entweder:

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String ind
ex out of range: 11
at java.lang.String.substring(String.java:1765)
at a110.main(a110.java:84)

oder:

Vom Benutzer eingegeben
126 4532145 5834654566
Quersumme 1: 0
Quersumme 2: 0
Quersumme 3: 0

hoffe ihr könnt mir dabei helfen

Schandro
 
Hi,

habe das Problem jetzt selber gelöst, es waren ein paar Syntaxfehler drinnen und die zweteswort / dritteswort Strings sollten nicht immer erschaffen werden.

Ich hätte jetzt aber noch ein anderes Problem bei dem ihr mir diesmal hoffentlich helfen könnt:

Ich würde diesen Code gerne als .jar oder.exe Datei haben, damit auch Rechner ohne das JDK den ausführen können. Ich hab schon Stundenlang das mir irgendwelchen kostenlosen Programmen versucht bzw. die Threads hier im Forum dazu gelesen, nur schaffe ich es einfach nicht. Könntet ihr mir bitte eine Schritt- für Schritt Anleitung dafür erstellen, ich brauch die Datei nämlich dringend in den nächsten Tagen und ausserdem verstehe ich so hoffentlich, wie das java to jar/exe allgemein funktioniert. Das wäre wirklich sehr nett von euch.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben