Java Szöveg szétdarabolása szavakká?!
Feladat: Adott bekérünk egy szót.Ha az a szó z-vel kezdődik és p-vel végződik akkor minden magánhangzót kiszedünk belőle.Ez sikerült is,ám ha mondatokat kérünk be,akkor ez már nem működik.
pl: zup
válasz: zp
pl: zip
válasz: zp
pl: this zup is not more than zzzapp
válasz:this zp is not more than zzzpp
A probléma azzal van,hogy ha ilyen hosszabb mondatot kérünk be,nem szedi ki,természetesen tudom miért nem,de nem tudok rájönni,hogy hogyan kellene megcsinálni.Kódom lent küldöm.
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String szoveg = sc.nextLine();
if(szoveg.startsWith("z") && szoveg.endsWith("p")){
szoveg=szoveg.replaceAll("[AaEeIiOoUu]", "");
}System.out.println(szoveg);
}
A feladat nem beszél mondatokról.
(Mondjuk nem mintha értelmesen lenne leírva)
Szerintem az "u"-t sem veszi ki a programod. Ugyanis azt vizsgálod, hogy maga az a szöveg (sor), amit beolvastál z-vel kezdődik-e és p-re végződik-e. Ez meg ugye nem igaz.
A szavakra darabolásra: split
Ami az example-ben van, az jó is lesz (csak - helyett szóköz kell):
for (String szo: szoveg.split(" ")) {
// ide jön az egy szón végzett feladat
// a végleges szavakat egy szoveg2 változóba összefűzöd például
}
// itt pedig kiírod a szoveg2-t
Köszönöm a másodiknak!
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String bekert = sc.nextLine();
String vegleges = "";
String megold = " " + bekert + " ";
for (int i = 1; i < megold.length()-1; i++) {
if (megold.charAt(i-1) != 'z' || megold.charAt(i+1) != 'p') {
vegleges += megold.charAt(i);
}
}
System.out.println(vegleges);
}
}
Itt a jó kód!
További kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!