surname.substr(surname.length() - 3,surname.length() - 1) == "ski";
surname.replace(1,surname.length() - 4,surname.length() - 4,'*');
Czy te komendy z c++ można zamienić na jave ? Bo widziałem tylko w javie te komendy z dwoma argumentami.
surname.substr(surname.length() - 3,surname.length() - 1) == "ski";
surname.replace(1,surname.length() - 4,surname.length() - 4,'*');
Czy te komendy z c++ można zamienić na jave ? Bo widziałem tylko w javie te komendy z dwoma argumentami.
W Javie Stringi porównuje się metodą equals
surname.substr(surname.length() - 3,surname.length() - 1).equals("ski");
Zapewne można uprościć
surname.endsWith("ski");
A czy replace jest tylko dla dwóch argumentów w javie ? jak wpiszę replace albo substring java to w dokumentacji pokazuje tylko funkcje z dwoma argumentami.
Nie ma.
w javie nie da się takiej
surname.replace(1,surname.length() - 4,surname.length() - 4,'*');
komendy niczym zastąpić ?
Da się
surname.substring(0,surname.length()-4)+"****";
ta komenda robi to samo co replace ? Bo w replace miałem ustawione tak,że pierwszy argument oznaczał od któego znaku zacząć, drugi argument ile znaków zastąpic , trzeci argument - do którego znaku zastępować, czwarty argument - jakim znakiem zastąpić te wybrane elementy.
Niezupełnie, ale nie wiem co chcesz uzyskać. Chcesz pewien fragment zmiennej surname
zastąpić gwiazdkami. Który fragment?
Wg dokumentacji metody replace
trzeci argument oznacza ile znaków wstawić.
jak mam np. nazwisko Kowalski to pierwsza litera i trzy ostatnie mają zostać bez zmian a reszta ma być zastąpiona gwiazdkami, czyli nazwisko powinno wyglądać tak: K****ski
Możliwe, że w opisie pomyliłem 2 argument z 3.
A jak masz nazwisko Ali albo Tusk, to jak ma ono wyglądać po przekształceniu?
Mam wcześniej ifa określającego, że tylko dla nazwisk które kończą się na "ski" następuje replace taki jak wcześniej napisałem.
Dlaczego, gdy chcę użyć stąd: http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html#replace(int,%20int,%20java.lang.String)
funkcji replace, to wyświetla się informacja, że metoda replace nie jest zdefiniowana mimo,że dałem na początku import java.lang.StringBuilder;
String replaceWithStars(String s){
char[] znaki = s.toCharArray();
for(int i=1;i<znaki.length-4;i++){
znaki[i] = '*';
}
return new String(znaki);
}
gdy tej funkcji chcę użyć tak:
replaceWithStars(abc);
to pokazuje błąd, że nie można statyczną referencją dostać się do nie statycznej funkcji replacewithstars. nad funkcją main dałem deklarację i definicję tej funkcji.
Ale czemu nie mogę użyć tego skoro w stringbuilder jest taka funkcja ?
String abc = "Kurczaki";
String no = abc.replace(1,3,'x');
Ty programujesz od tygodnia?
static
też musi być static
.String no = abc.replace(1,3,'x');
nie ma ani w klasie String ani w klasie StringBuilder.
Moim zdaniem powinieneś wrócić do HelloWorld!.
tutaj jest//docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html
tylko teraz zauważyłem, że dla zmiennej StringBuilder i nie wiem jak ją wywołać.
chyba tak będę musiał to zrobić:
for(int i = 1; i < abc.length() - 4; ++i)
{
char c = abc.charAt(i);
System.out.print(c);
}