Datentypen Frage zu einer Übungsaufgabe

pisco

Bekanntes Mitglied
Hey Leute
ich übe gerade ,da ich morgen Java-Programmier Test hab:

zu Angabe:

Es wird ein einzelner String, sowie ein Hintegrundzeichen eingelesen und ein entsprechendes Objekt erzeugt. Verschiedene eingelesene Befehle rufen Methoden auf, die zum Beispiel den String verschieben und frei gewordene Stellen mit dem Hintergrundzeichen auffüllen.

INPUT

Programmieren *
move 5

OUTPUT

*****Programm

meine Methode:

Java:
	public String charControl(char c, String s, int move){
		int counter = 0;
		String temp ="";
		
		for(int j=0; j< move; j++){
			temp+=c;//nicht 'c' gibt nämlich c aus...
		}
		/*
		for(int i=0; i<=s.length(); i++){	
			counter++;
			if(counter<move){
				temp+= s.charAt(i);
			}
		}*/
		temp+= s.substring(1, (s.length()-5));
		
		return temp;
	}

der compiler liefert mir nur cccccc... die Frage is warum?

ich dank euch für eure Hilfe und freu mich schon auf eure Antwort
 
Zuletzt bearbeitet:
denke du meinst [c]temp+=c;[/c] du willst ja den char c anhängen und nicht den buchstaben c
 
Weil du nichst anderes im String drin hast.
Aufruf mit "Programm *" und 5

Auf Zeile 6 füllst du 6 mal 'c' ein (5+1 weil du mit <= den Loop beendest)

if(s.length()<=move){ temp += ...
s.length() ist 10 move ist 5, also wird temp +=.... nie ausgeführt.

Du musst wohl deine Programmlogik überdenken.
By the way -> hast du keinen Debugger???:L
 
Java:
 public String charControl(char c, String s, int move) {
      String temp = "";

      for (int j = 0; j < move; j++) {
         temp += c;
      }

      for (int i = 0; i < s.length()-move; i++) {
            temp += s.charAt(i);         
      }

      return temp;
   }
 
Java:
	public String charControl(char c, String s, int move){
		int counter = 0;
		String temp ="";
		
		for(int j=0; j< move; j++){
			temp+=c;//nicht 'c' gibt nämlich c aus...
		}
		/*
		for(int i=0; i<=s.length(); i++){	
			counter++;
			if(counter<move){
				temp+= s.charAt(i);
			}
		}*/
		temp+= s.substring(1, (s.length()-5));
		
		return temp;
	}

dank euch ;D

Hab mal meinen Code bearbeitet als output krieg ich: *****rogramm

is zwar immer no ned richtig aber es wird schon...

habt ihr vll einen Vorschlag wie ich das lösen könnte?

gruss
 
Versuch doch mal substring(0, (s.length....... 🙂

Ach die 5 sollte wohl auch keine 5 sondern move sein 🙂

Java:
s.substring(0, (s.length()-move));
 
Java:
public String charControl(char c, String s, int move){
		int counter = 0;
		String temp ="";
		String buff = "";
		
		for(int j=0; j< move; j++){
			temp+=c;//nicht 'c' gibt nämlich c aus...
		}
		
		for(int i=0; i<=s.length(); i++){	
			
			if(i<move){
				buff += charAt(i);//FEHLER
			}
		}
		temp+= buff;
		
		return temp;
	}

also ich habs gerade so probiert nur liegt halt ein Fehler im code wieder(dabei sollt das funzen^^)

./ArticleNumberCheck.java:57: cannot find symbol
symbol : method charAt(int)
location: class ArticleNumberCheck
buff += charAt(i);
^
1 error


lol warum nimmt er das ned?

gruss
 
Aeh und wo ist das substring jetzt hingekommen? Die Zeilennummer in der Fehlermeldung hilft nicht viel, wenn wir nicht die ganze Klasse haben.

EDIT:ALles klar
charAt(i); alleine ist nichts - du musst vermutlich s.charAt machen ....
 
Versuch doch mal substring(0, (s.length....... 🙂

Ach die 5 sollte wohl auch keine 5 sondern move sein 🙂

Java:
s.substring(0, (s.length()-move));

habs gerade so gemacht ;D geht natürlich

btw. könntest du mir vll meinen Fehler oben noch ausbessern, ich will ja schließlich auch noch was lernen ;D

danke nochmals^^
 
Java:
	public String charControl(char c, String s, int move){
		int counter = 0;
		String temp ="";
		String buff = "";
		
		for(int j=0; j< move; j++){
			temp+=c;//nicht 'c' gibt nämlich c aus...
		}
		
		for(int i=0; i<=s.length(); i++){	
			
			if(i<move){
				buff += charAt(i);
			}
		}
		temp+= buff;
		
		return temp;
	}

symbol : method charAt(int)
location: class ArticleNumberCheck
buff+= charAt(i);
^
1 error

Warum kann er in den String ned das char einlesen?
 

Zurück
Oben