Перебираем строки и переворачиваем их до тех пор, пока не останется 1 буква
Привет разработчикам Java,
Я не так уж стар на Яве и все еще нахожусь в периоде обучения.
Я практиковался в java и столкнулся с проблемой.
Описание приведено ниже.
Oliver and Lucy play game "Guess: which letter will be the last one?". Lucy names a guessed word and asks Oliver, which letter will be the last one. Rules of the games are the following: (a) at first, remove every second letter, (b) then reverse the string of remaining letters (turn in backward order), (c) repeat steps a and b until single letter left. For example, when Lucy names word "KARTUPELIS", the wright answer is "I", because KARTUPELIS -> KRUEI -> IEURK -> IUK -> KUI -> KU -> IK -> I. Write program that reads data from text file uzd9.in the given words; each word is written in separate line; maximum length of the word is 30 letters; word can include both uppercase, and lowercase Latin alphabet letters; the file contains no more than 100 words. The program must write the last remaind letter for each word after the gameplay in text file uzd9.out; each result in separate line. Example, Input data Wordsbefore.in KARTUPELIS BUMBA KURMIS SUNS Output data wordsafter.out I A K N.
ниже приводится то, что я пробовал. Это вроде как работает, но я должен каждый раз преобразовывать слово в chararray, а затем запускать цикл через него. Это дает результат, но для меня это не очень хорошая практика. Я хочу запустить цикл через эти слова и продолжать работать до тех пор, пока во всех словах не останется ни одной буквы.
Пожалуйста, помогите мне, что я могу сделать, чтобы запустить цикл, который проходит через слова, делает свою работу и проверяет, осталась ли одна буква. если нет, то делает то же самое и продолжает делать, пока в каждом слове не останется одна буква.
"После выполнения приведенного ниже кода вывод, который я получаю, таков::"
"кюи"
У меня есть "картупели"в мой txt файл.
Что я уже пробовал:
package com.io.java; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class buffered { public static void main(String[] args) { buffered b = new buffered(); String textFile = "words.txt"; b.readFile(textFile); String newstr = ""; } public void readFile(String strFile) { try (BufferedReader buffer = new BufferedReader(new FileReader(strFile))) { String strBuffer; while((strBuffer = buffer.readLine()) != null && strBuffer.length()>1) { String n = ""; String newtr = ""; int k; char[] c = strBuffer.toCharArray(); for( k=0; k<=c.length;k++) { if(k%2==0) { newtr+=c[k]; } } newtr = reverse(newtr); c=newtr.toCharArray(); if(c.length>0) { for(int j = 0; j<=c.length;j++) { if(j%2==0) { n+=c[j]; } } } else { break; } n = reverse(n); System.out.println(n); } buffer.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void writeFile(String strFile, String data) { try(BufferedWriter bwriter = new BufferedWriter(new FileWriter(strFile, true))) { bwriter.write(data); } catch (IOException e) { e.printStackTrace(); } } public String reverse(String s) { s = new StringBuffer(s).reverse().toString(); return s; } }
Mohibur Rashid
Пожалуйста, определите "каждую секунду"
Nabeel Munir
Это означает, что программа должна быть закодирована таким образом, чтобы она удаляла каждую 2-ю(вторую) букву из слова. например, предположим, что у нас есть слово "картофель"
я напишу программу, которая удалит каждую вторую букву из этого слова. любить,
"ОАО" снимут и "ПТТ" будет слева, а затем и обратного оставшиеся буквы. Итак, ptt станет, ttp и снова уберет вторую букву и перевернет ее. после удаления каждой второй буквы из ttp у нас будет, tp и обратно снова получится, pt затем снова уберет вторую букву и мы останемся с p.
Я хочу сделать все эти шаги с помощью одного цикла.
Итак, я хочу написать программу, которая сначала удаляет каждое второе слово и переворачивает его, а затем проверяет, осталась ли одна буква, если нет, то возвращается к циклу и снова удаляет каждое второе слово, проверяет, осталась ли одна буква, и цикл продолжается до тех пор, пока не останется одна буква.
Nabeel Munir
Мне не нужен весь код для этой программы. То, что я хочу сделать сам, мне просто нужно предложение о том, как я могу реализовать такой код в java, который я определил. цикл, который продолжает удалять и реверсировать до тех пор, пока не останется одна буква.
Я перепробовал много возможных способов, но, похоже, моих знаний о java недостаточно. Мне нужно получить больше знаний.