Java String feladat értelmezése?!
Feladat: Look for patterns like "zip" and "zap" in the string -- length-3, starting with 'z' and ending with 'p'. Return a string where for all such words, the middle letter is gone, so "zipXzap" yields "zpXzp".
A kódot részben megírtam,a másik részét neten találtam,ám van amit nem értek.Esetleg ha valaki el tudná nekem magyarázni a logikáját a lépésnek,nagyon hálás lennék érte!!!A kódot mellékelem kommentben!!
public class StringZipZap {
public static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
zipZap();
}
public static void zipZap(){
String word = sc.nextLine();
String finalWord = "";
String doRight = " "+word+" ";
for(int i = 1; i < word.length()-1; i++){
if(doRight.charAt(i-1) != 'z' || doRight.charAt(i+1) != 'p'){
finalWord += doRight.charAt(i);
}
}System.out.println(finalWord);
}
}
Amit nem értek,hogy
if(doRight.charAt(i-1) != 'z' || doRight.charAt(i+1) != 'p')
Első résznél (i-1)
Második résznél (i+1)
Ezek pontosan így mi célt szolgálnak?
// Ha az egész feltételt negáljuk akkor úgy érthetőbb lesz.
for(int i = 1; i < word.length()-1; i++) {
if ((doRight.charAt(i-1) == 'z') // Ha a betű előtt betű 'z',
&& (doRight.charAt(i+1) == 'p')){ // és a betű utáni betű 'p', akkor
// Kihagyjuk ezt a betűt, mert 'z' és 'p' között van.
}else{
finalWord += doRight.charAt(i); // Felfűzzük ezt a betűt.
}
}
System.out.println(finalWord);
Kapcsolódó 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!