0

私は文を取り、それをJavaで単語ごとに逆にするプログラムをしなければなりません。例: インドは私の国です

出力:aidnI si ym yrtnuoc

私はそれをすべて理解しましたが、文を別々の単語に分割することはできません.imは分割関数の使用を許可されていませんが、部分文字列またはindexof()のいずれかを使用することを意図しています.whileループとforループは許可されています. これはこれまでに得たものです:

java.io.* をインポートします。

公開クラス Rereprogram10

{

public void d()throws IOException

{

 BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

 String str;

 System.out.println("input a string");


 str=br.readLine();

 String rev="";
 int length=str.length();
 int counter=length;
 for(int i=0;i<length;i++)
 {
     rev=rev+str.charAt(counter-1);
     counter--;
    }
    System.out.println("the result is: "+rev);
}

}

それは間違っていますが、出力が続きます:yrtnuoc ym si aidnIはまだ配列を学んでいません...

4

4 に答える 4

0

これを試して

String x="India is my country";
StringBuilder b=new StringBuilder();


int i=0;
do{
     i=x.indexOf(" ", 0);
     String z;
     if(i>0){
         z=x.substring(0,i); 
     }
     else{
         z=x;
     }

     x=x.substring(i+1);
     StringBuilder v=new StringBuilder(z);
     b.append(v.reverse());
     if(i!=-1)
     b.append(" ");
     System.out.println(b.toString());

}
while(i!=-1);
于 2013-05-17T05:18:05.057 に答える
0

これはテストに合格します:

package com.sandbox;

import com.google.common.base.Joiner;
import org.junit.Test;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import static org.junit.Assert.assertEquals;

public class SandboxTest {

    @Test
    public void testQuestionInput() {
        String input = "India is my country";

        assertEquals("country my is India", reverseWords(input));
    }

    private String reverseWords(String input) {
        List<String> words = putWordsInList(input);

        Collections.reverse(words);

        return Joiner.on(" ").join(words);
    }

    private List<String> putWordsInList(String input) {
        List<String> words = new ArrayList<String>();
        String word = "";
        for (int i = 0; i < input.length(); i++) {
            char c = input.charAt(i);
            if (c == ' ') {
                words.add(word);
                word = "";
            } else {
                word += c;
            }
        }
        words.add(word);
        return words;
    }


}
于 2013-05-17T04:32:04.173 に答える