Jak skonkatenować dwie tablice znaków lub i tablice znaków i string?
Tworze dwie tablice znaków. Zamieniam je na String za pomocą CopyValueOf. Wszystko mam w void main I teraz pytanie jak to skonkatenować w dodatkowej metodzie a nie w metodzie main? Chciałbym 3 różne metody. Pierwszą tablice znaków i string, string i drugą tablice i tablica z tablicą. Nie wiem jak to za bardzo zapisać.
No to naprosciej chyba tak
String hello = "Hello, ";
String world = "world!";
System.out.println(hello + world);
System.out.println(String.format("%s%s", hello, world));
a na sile trzecia metoda:
https://www.delftstack.com/howto/java/how-to-concatenate-two-arrays-in-java/
EDIT: Jeszcze np. tak
StringBuilder sb = new StringBuilder();
sb.append(hello).append(world);
System.out.println(sb.toString());
To wiem, ale mi raczej chodzi o konkatenacje w innej metodzie niż void main. Czyli mam zdefiniowane dwie tabele char i string w void main i chciałbym je skonkatenować na 3 różne sposoby w 3 różnych metodach i je wywołać w main. Tylko nie wiem jak to przepisać na pojedyncze metody.
Przeciez to nie ma znaczenia w jakiej metodzie sie konkatenuje.
Umiesz w ogole metode napisac?
Rozchodzi się o to, że mi cały czas na czerwono zaznacza konkatenacje jak wpiszę ją w innej metodzie. Parametry nie zostały zdefiniowane coś takiego.
A kodu nie pokażesz bo chcesz żebyśmy wyciągneli krysztłowe kule i zgadli w czym problem?
A więc chciałbym to rozpisac na 3 metody
• String con (char[] , String)
• String con (String, char[])
• String con (char[] , char[])
public static void main(String[] args) {
char[] firstArr = { 'a', 'b', 'c' };
char[] secondArr = { 'f', 'g', 'h' };
String str1 = String.copyValueOf(firstArr);
String str2 = String.copyValueOf(secondArr);
String str3 = "max";
String output = str1.concat(str2);
System.out.println(output);
String output2 = str2.concat(str1);
System.out.println(output2);
String output3 = str1.concat(str3);
System.out.println(output3);
String output4 = str3.concat(str1);
System.out.println(output4);
String output5 = str2.concat(str3);
System.out.println(output5);
String output6 = str3.concat(str2);
System.out.println(output6);
}
public static String con (char[] firstArr, char[] secondArr){
String str1 = String.copyValueOf(firstArr);
String str2 = String.copyValueOf(secondArr);
String output = str1.concat(str2);
System.out.println(output);
String output2 = str2.concat(str1);
System.out.println(output2);
return output;
}
No i teraz w main
piszesz:
String output = con(firstArr, secondArr);
Czyli piszesz nazwę swojej metody con
a w nawiasie podajesz parametry zgodne z deklaracją.
Twoja metoda oczekuje dwóch parametrów char[]
, więc podajesz wcześniej zadeklarowane firstArr
i secondArr`
Deklarację miałeś tu:
(akurat w tym przypadku nazwy zmiennych i parametrów są identyczne, ale nie ma to żadnego wpływu)
char[] firstArr = { 'a', 'b', 'c' };
char[] secondArr = { 'f', 'g', 'h' };
- Jaki masz blad? (komunikat bledu)
- Nie rob zadnych printlinow wewnatrz podrzednych metod. Zwracaj tylko wynik.
Ok ale jaki jest problem? Mówiłeś że coś się nie kompiluje a wrzuciłeś kod który działa - nie wiem czy tak jak chcesz bo dajesz ochłapy informacji, ale działa pod względem, że da się go uruchomić.
Generalnie krocej i jasniej jest new String(charArr);
java.lang.System.arraycopy()
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
src − This is the source array.
srcPos − This is the starting position in the source array.
dest − This is the destination array.
destPos − This is the starting position in the destination data.
length − This is the number of array elements to be copied.
najszybsza metoda, utwórz nową tablice o rozmiarze size1 + size2 i wypełnij ją powyższą metodą
@hipekk: problem jest taki, że nie mogę zmienić tej deklaracji na String firstArr. bo mi tego zadanie zabrania.
Niestety nie podałeś treści zadania, więc o tym nie wiedziałem.
W takim razie nie możesz :).
Dobra poradziłem sobie.