Konkatenacja

0

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ć.

1

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());
0

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.

1

Przeciez to nie ma znaczenia w jakiej metodzie sie konkatenuje.

Umiesz w ogole metode napisac?

0

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.

2

A kodu nie pokażesz bo chcesz żebyśmy wyciągneli krysztłowe kule i zgadli w czym problem?

0

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);

}
0
    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;
    }

0

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' };
1
  1. Jaki masz blad? (komunikat bledu)
  2. Nie rob zadnych printlinow wewnatrz podrzednych metod. Zwracaj tylko wynik.
0

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ć.

0

Generalnie krocej i jasniej jest new String(charArr);

0

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ą

0

@hipekk: problem jest taki, że nie mogę zmienić tej deklaracji na String firstArr. bo mi tego zadanie zabrania.

0

Niestety nie podałeś treści zadania, więc o tym nie wiedziałem.

W takim razie nie możesz :).

0

Dobra poradziłem sobie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1