Przesyłanie między Stringami.

Odpowiedz Nowy wątek
2020-01-16 15:32

Rejestracja: 2 lata temu

Ostatnio: 1 miesiąc temu

0

Witam, robię zadanie: Napisać program, który wczytuje od użytkownika ciąg znaków, a następnie two-rzy łańcuch będący odwróceniem podanego łańcucha i wyświetla go na ekranie.Przykładowo, dla łańcucha „Kot” wynikiem powinien być łańcuch „toK”.

import java.util.Random;
import java.util.Scanner;

public class CwiczeniaPętle {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        System.out.println("Podawaj hasło: ");

        String word= scanner.nextLine();

        int howManyLetters = 0;
        char letter, lastLetter, temp;

        int a = word.length();
        String obverse = new String();
        obverse = word;

        for(int i = a-1, j = 0; i >= 0; i--, j++)
        {

            letter = word.charAt(i);
            obverse.charAt(j) = letter;
            //System.out.print(word.charAt(i));
        }
    }
}

i wyskakuje mi błąd:
Error:(26, 27) java: unexpected type
required: variable
found: value

o co chodzi? Nie chcę wyświetlić Stringa word od końca tylko przerzucić to do obverse.

Pozostało 580 znaków

2020-01-16 15:42

Rejestracja: 6 lat temu

Ostatnio: 40 minut temu

Lokalizacja: Kraków

1

Trudno powiedzieć które to niby linie są w tym errorze. Tak czy siak masz przecież błąd taki: "The left-hand side of an assignment must be a variable"
w linii: gdzie robisz: obverse.charAt(j) = letter;
charAt zwraca ci znak na pozycji j i nie możesz do tego nic przypisać.

Pozostało 580 znaków

2020-01-16 15:57

Rejestracja: 2 lata temu

Ostatnio: 1 miesiąc temu

0

A więc jak mam przypisać literę w to miejsce? Tzn "przerzucić" litery z word do observe?

edytowany 1x, ostatnio: dziubi21, 2020-01-16 15:58

Pozostało 580 znaków

2020-01-16 16:08

Rejestracja: 1 rok temu

Ostatnio: 1 minuta temu

Lokalizacja: Silesia

dziubi21 napisał(a):

A więc jak mam przypisać literę w to miejsce? Tzn "przerzucić" litery z word do observe?

W ten sposób się nie da. String w Javie jest niezmienny (immutable).

Przy okazji, robisz przypisanie obverse = word; więc zmienne/referencje obverse i word wskazują na ten sam obiekt.

Jak to zrobić? Zobacz StringBuilder

Przy okazji 2, Java co prawda pozwala używać w identyfikatorach pełnego unicode, ale nie uważa się tego za dobrą praktykę i w nazwach zwyczajowo nie używa się polskich znaków (jeśli już naprawdę musisz używać polskich nazw)


edytowany 2x, ostatnio: Kamil Żabiński, 2020-01-16 16:14

Pozostało 580 znaków

2020-01-16 16:26

Rejestracja: 2 lata temu

Ostatnio: 1 miesiąc temu

0

Coś takiego już działa:

import java.util.Random;
import java.util.Scanner;

public class CwiczeniaPętle {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        System.out.println("Podaj hasło: ");

        String word= scanner.nextLine();

        StringBuilder obverse = new StringBuilder(word);
        obverse.reverse();

        System.out.println(obverse);
    }
}

Kamil Żabiński Dzięki.

edytowany 1x, ostatnio: dziubi21, 2020-01-16 16:26

Pozostało 580 znaków

Odpowiedz

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