12 svar
1212 visningar
nutella143 är nöjd med hjälpen
nutella143 74 – Fd. Medlem
Postad: 15 mar 2018 11:54 Redigerad: 16 mar 2018 10:44

reversera en sträng

har ett program där man ska skriva in ett ord/text.. och den ska skriva ut texten ovänt..

 

public static void main (String[] args) {

Scanner input = new Scanner(System.in);

System.out.print("Skriv in text med 6 skrifttecken: ");
String text = input.nextLine();

char ch[] = text.toCharArray();

for(int i = ch.length-1; i > -1; i--)
{
text += ch[i];
}

System.out.println("Din text omvänt: " + text);

 

}
}

men får inte till det för utskriften blir tex. om jag skriver in "hej": hejjeh

text += ch[i]; <--- problemet sitter ju här men om jag tar bort plus får jag felkod: char cannot be converted to String

 

hur rensar jag strängen för att endast få ut "jeh"

PeterÅ 842
Postad: 15 mar 2018 13:57

Till att börja med tycker jag du ska ändra rubriken. Det handlar inte om att "rensa" utan om att reversera, skriva texten baklänges / "omvänt".

Skapa en ny variabel
char[] result = "";
Byt ut

text += ch[i];
mot

result += ch[i];
samt
System.out.println("Din text omvänt: " + text);
till
System.out.println("Din text omvänt: " + result);

Affe Jkpg 6630
Postad: 15 mar 2018 19:01

Prova med:
&text[length-1-i]=ch[i];

nutella143 74 – Fd. Medlem
Postad: 15 mar 2018 20:47

reversera! okey! tack :D hur ändrar man rubriken?

nutella143 74 – Fd. Medlem
Postad: 15 mar 2018 20:58

får detta felmeddelande när jag försöker skapa den nya variabeln:

error: incompatible types: String cannot be converted to char[]
char[] result="";

Affe Jkpg 6630
Postad: 15 mar 2018 21:53 Redigerad: 15 mar 2018 21:54
nutella143 skrev :

får detta felmeddelande när jag försöker skapa den nya variabeln:

error: incompatible types: String cannot be converted to char[]
char[] result="";

Jag gissar att:
char [] result = new char[ch.length];
I andra sammanhang kan man väl t.ex. skriva:
String ella = "";

PeterÅ 842
Postad: 16 mar 2018 07:24

Prova denna kod:

    public static void main (String[] args)
    {
//      Scanner input = new Scanner(System.in);

        System.out.print("Skriv in text med 6 skrifttecken: ");
        String text = "ni talar bra latin"; //input.nextLine();
        String result = "";
       
        char ch[] = text.toCharArray();
        for(int i = ch.length-1; i > -1; i--)
        {
            result += ch[i];
        }
        System.out.println("Din text omvänt: " + result);
    }

Affe Jkpg 6630
Postad: 16 mar 2018 10:35
PeterÅ skrev :

Prova denna kod:

    public static void main (String[] args)
    {
//      Scanner input = new Scanner(System.in);

        System.out.print("Skriv in text med 6 skrifttecken: ");
        String text = "ni talar bra latin"; //input.nextLine();
        String result = "";
       
        char ch[] = text.toCharArray();
        for(int i = ch.length-1; i > -1; i--)
        {
            result += ch[i];
        }
        System.out.println("Din text omvänt: " + result);
    }

I din kod kommer väl kompilatorn för "result", bara reservera utrymme för en enda byte ("")?
Jag gissar på kompileringsfel som tidigare:
error: incompatible types: String cannot be converted to char[]
char[] result="";

Teraeagle 20215 – Moderator
Postad: 16 mar 2018 10:44
nutella143 skrev :

reversera! okey! tack :D hur ändrar man rubriken?

Du trycker på ”redigera” i ditt huvudinlägg. Om det har gått mer än 2 timmar efter att inlägget postades så måste du kontakta en moderator för att fixa det. Jag kan ändra den åt dig!

nutella143 74 – Fd. Medlem
Postad: 28 mar 2018 10:53
Teraeagle skrev :
nutella143 skrev :

reversera! okey! tack :D hur ändrar man rubriken?

Du trycker på ”redigera” i ditt huvudinlägg. Om det har gått mer än 2 timmar efter att inlägget postades så måste du kontakta en moderator för att fixa det. Jag kan ändra den åt dig!

tack gärna! =D

PeterÅ 842
Postad: 28 mar 2018 21:45 Redigerad: 28 mar 2018 21:46
Affe Jkpg skrev :

I din kod kommer väl kompilatorn för "result", bara reservera utrymme för en enda byte ("")?
Jag gissar på kompileringsfel som tidigare:
error: incompatible types: String cannot be converted to char[]
char[] result="";

Nja, det sker en kopiering till en annan sträng i bakgrunden. Inte så snyggt kanske men det visar ett sätt att vända på en text. Koden fungerar i NetBeans IDE 8.2.

nutella143 74 – Fd. Medlem
Postad: 4 apr 2018 15:36

Tack PeterÅ!

det funkade :D

har jag förstått det rätt om jag tänker...

det man skriver in sparas i "text"

sen blir ersätts "text" med "result"..

 

men varför funkade det inte i mitt fall när jag: System.out.println("Din text omvänt: " + text);

AlvinB 4014
Postad: 4 apr 2018 15:49 Redigerad: 4 apr 2018 15:50

I den ursprungliga koden hade du variabeln text där du hade ordet. Sedan lade du på bokstäverna i omvänd ordning på samma sträng (utan att ta bort texten som redan fanns där), vilket ledde till att du fick ursprungsordet och det omvända ordet samtidigt.

Med det nya systemet skapar du en helt tom variabel result där du sätter in bokstäverna i omvänd ordning, vilket gör att du inte får ursprungsordet i resultatet.

Svara Avbryt
Close