Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hi liebe Java-Gemeinde
Ich habe ein Funktion, die mir die Distanz zu einem gesuchten String ausgeben soll, damit ich dann im Anschluss einen String mit Blanks auffüllen kann, und zwar mit der berechnetetn Distanz (Länge). Meine VErsuche führen leider nicht zu 100% zum gewünschten Ergebnis, deshalb wäre ich für jeden Vorschlag dankbar.
Als Beispiel:
Java:
String s = " Das ist ein Beispielsatz"
String a = distance(s, "ist"); //Funktionaufruf
distance = String.format(a, " "); //hier mit Blanks füllen
result = s + "\n" + distance + "blablub";
public String distance(String line, String word)
{
int j = 0;
j = line.indexOf(word);
//werden Tabs auch solche erkannt?
String a = "%-"+j+"s"; //das funktioniert auch nicht??
return a;
}
Ausgabe sollte sein:
.......Das ist ein Beispielsatz
..............blablub
(Punkte=Leerzeichen)
Edit: Das ganze mit einer einfachen for-Schleife und einem Stringbuffer zu lösen ist natürlich möglich und hatte ich auch schon, aber ich hoffe eine "elegantere" Lösung zu finden. Danke
public class Test {
public static void main(String[] args) throws Exception {
String s = " Das ist ein Beispielsatz";
String a = distance(s, "ist"); // Funktionaufruf
String distance = String.format(a, " "); // hier mit Blanks füllen
System.out.println( s + "\n" + distance + "blablub");
}
public static String distance(String line, String word) {
int j = 0;
j = line.indexOf(word);
// werden Tabs auch solche erkannt?
String a = "%-" + j + "s"; // das funktioniert auch nicht??
return a;
}
}
Die Variable String distance am Klassenanfang. Die Variable wird in unterschiedlichen Methoden benötigt, basierend auf dem jeweiligen "Problem".
Java:
if (actualLine.contains("print"))
{
String a = distanceToWord(actualLine, "print");
//die Distanz wird mit blanks aufgefüllt
distance = String.format(a, " ");
}
Java:
if (beginCounter==0)
{
String a = distanceToWord(line, "if");
distance = String.format(a, " ");
result = line + "\n" + distance + "begin";
return result;
}
Ich stell mir auch die Frage, wie ich es schaffen kann, dass \t auch als solche erkannt werden, und nicht nur als Leerzeichen?
warum sollte der Tabulator als Leerzeichen erkannt werden ???:L
Es ist ein nicht darstellbares Steuerzeichen (Steuerzeichen) - ein BYTE groß und hat den Wert 0x9 !
Wenn es zwischen Deinen Blanks steht, musst es auch entsprechend behandeln!