Ich soll alle Buchstaben die groß geschrieben sind in einem String ändern. ich übergebe den String einer Methode, die den abgeänderten String zurückgeben soll. Ich weiß aber nicht wie ich die geänderten Buchstaben wieder in den String einfüge.
Die Änderung der entsprechenden Strings wandle ich in den entsprechenden Integer Wert derAscii Tabelle um und verschiebe ihn entsprechend. Doch wie kriege ich nun den geänderten char wieder an die richtige Stelle in meinen String. Ich soll keine vorgefertigten Methoden nehmen sondern soll die chars einzeln mit charAt(i) aus dem String extrahieren, sie dann ändern und den geänderten String wieder ausgeben.
Hier ist mein Programm, allerdings ist der Offset nicht zu beachten. Es geht mir erstmal nur darum was ich oben geschrieben habe.
Der code ist natürlich keineswegs vollständig bis jetzt, das ist mir klar. Nur wie schaffe ich es, den String entsprechend abzuändern und ihn dann geändert wieder auszugeben.
Ich muss den Mist morgen abgeben und habe keine Ahnung.
Code:
public class Caesar
{
public static String encrypt(String str, int offset)
{
int k = str.length();
for (int i = 0; i < (k-1); i++)
{
char c = str.charAt(i);
int a = (int) c;
if ((a < 65) || ((a > 90) && (a < 97)) || (a > 122))
{
return "Falsche Buchstaben!";
}
else if ((a <= 90) && (a >= 65))
{
char b = (char) (a + 32);
String text =
return str;
}
}
}
public static void main(String args[])
{
String x = new String(args[0]);
int offset = Integer.parseInt(args[0]);
System.out.print("Bitte geben sie den zu verschluesselnden Satz ein: ");
String wort = GdAInput.readLine();
System.out.println("Eingabe:\n " + wort);
System.out.println("Uebergebener Schluessel: " + offset);
String textneu = encrypt(wort, offset);
System.out.println("Neuer Text: " + textneu);
}
}
public static String toLowerCase(String s){
StringBuilder sb = new StringBuilder();
for (char c : s.toCharArray()){
if ( c >= 65 && c <= 90){
sb.append(((char)(c+32)));
} else{
sb.append(c);
}
}
return sb.toString();
}
EDIT:
oder nach André:
Code:
public static String toLowerCase(String s){
String sb = "";
for (char c : s.toCharArray()){
if ( c >= 65 && c <= 90){
sb += ((char)(c+32));
} else{
sb += c;
}
}
return sb;
}
Klasische Schulaufgabe.....
Also die erste Antwort war eigentlich schon alles was du benötigst.
Mach dir einen neuen String den du Positionsweise füllst Zeichen für Zeichen. dann kannste entweder anhand des Ansi wertes für jedes Zeichen die Großbuchstaben finden oder anhand eines großen vergleichs. bei ANSI ziehst du von dem aktuellen wert eine gewisse Menge ab um das kleingeschrieben gegenteil zu bekommen.
aber warum keine Methoden benutzen? Sag deinem Lehrer er kann dich ma Arsch lecken das du nicht benutzen darfst was Java ausmacht.