首页 > 试题广场 >

句子反转,如"I am a boy.",反转完为“boy a

[问答题]
句子反转,如"I am a boy.",反转完为“boy a am I”
public static String reserverString(String s) {
        String[] strs = s.split(" ");
        StringBuffer buffer = new StringBuffer();
        for (int i = strs.length - 1; i >= 0; i--) {
            buffer.append(strs[i] + " ");
        }        
        return buffer.toString();
    }


                                                                                    
发表于 2019-09-02 11:08:02 回复(2)
import java.util.Scanner;
public class Main {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            String s = sc.nextLine();
            System.out.println(reverse(s));
        }
    }

    public static String reverse(String s){
        String[] str = s.split(" ");
        StringBuilder sb = new StringBuilder();
        for (int i = str.length - 1; i > 0; i--) {
           sb.append(str[i]).append(" "); 
        }
        sb.append(str[0]);
        return sb.toString();
    }
}

编辑于 2020-09-02 15:27:47 回复(0)
 public static String reserveString (String s){
        String[] str = s.split(" ");
        StringBuffer buffer = new StringBuffer();
        for (int i = str.length-1;i>0;i--){
                buffer.append(str[i]+" ");
        }
        buffer.append(str[0]);
        return buffer.toString();
    }

发表于 2021-10-08 08:55:11 回复(1)
将每个单词用空格分开保存到字符串数组中,创建一个stringbuffer,把每个元素放进去在转换成字符串
发表于 2020-04-09 00:18:59 回复(0)
import java.util.*;
public class zfc {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();
        StringBuffer s1 = new StringBuffer(s);
        s1.reverse();
        System.out.println(s1);
        sc.close();
    }
}
发表于 2019-08-08 20:10:36 回复(2)
public class ReverseWords { public static void main(String[] args){
        String s = "I am a boy .";
        String[] st = s.split(" ");     StringBuffer buffer = new StringBuffer();  for(int i = st.length-1;i>=0;i--){
            buffer.append(st[i]+" ");
        }
        String st1 = buffer.toString();
        System.out.println(st1);
}

发表于 2020-04-01 12:05:00 回复(0)
将原字符串进行单个字符切割,存到一个数组中,然后遍历数组,将数组中的元素从后往前输出
发表于 2020-03-29 11:25:50 回复(0)
public class test {
    public static void main(String[] args) {
        String str="I am a boy";
        String results[]=str.split(" ");
        StringBuffer sb=new StringBuffer();
        for(int i=0;i<results.length;i++) {
            sb.append(results[results.length-i-1]).append(" ");
        }
        sb=sb.deleteCharAt(sb.length()-1);
        System.out.println(sb);
    }
}
发表于 2020-03-10 22:56:52 回复(0)
用字符数组将每个空格之间的单词存起来,最后反向输出
发表于 2020-02-21 22:05:41 回复(0)
String stu="I am a boy";
        String[] s = stu.split(" ");
        for(int i=s.length-1;i>=0;i--) {
            System.out.print(s[i]+" ");
        }
发表于 2019-12-07 18:01:04 回复(0)
用vector 来存string,逐个遍历判分隔符就行了,最后逆序输出vector,也可扩展解决其它非空格分隔符问题。
发表于 2019-11-23 23:33:02 回复(0)
正确
发表于 2019-11-17 01:17:22 回复(0)

思路:

1先String.toCharArray转成字符数组,

2.数组下标为0的元素与下标为i-1的交换,

3.交换i/2次

编辑于 2019-11-13 11:41:05 回复(0)
return s[::-1]
发表于 2019-10-16 18:41:18 回复(0)
def reverse(Input):
    words_list = Input.strip().split()
    length = len(words_list)
    out = ''
    for i in range(length-1,0,-1):
        out=out+words_list[i]+' '
    out = out+words_list[0]
    print(out)
Input = input()
reverse(Input)




编辑于 2019-09-22 19:32:36 回复(0)

回文

发表于 2019-08-28 00:20:31 回复(0)
注意原句子后面有个句号,反转后的句子里面没有,需要截取一下。
public class ReverseString {     String reverseString(String originalStr) {         if (originalStr == null || originalStr.isEmpty())             return originalStr;         String str = originalStr.substring(0, originalStr.indexOf("."));         String[] strs = str.split(" ");         StringBuilder sb = new StringBuilder();         for (int i = strs.length - 1; i >= 0; i--) {             sb.append(strs[i] + " ");         }         return sb.toString();     }     public static void main(String[] args) {         System.out.println(new ReverseString().reverseString("I am a boy."));     }

}



发表于 2019-08-20 17:07:41 回复(0)
#include<iostream>
#include<vector>
#include<iterator>
#include<string>
#include<list>

using namespace std;

int main()
{  	
	string s,sc;	
	getline(cin,sc);
	int n=sc.length() ;	
    list<string> lst;
	for(int i=0;i<n;i++ )
	{
		if(sc[i]=='.')
		    lst.push_front(s);
	    s.push_back(sc[i]); 
		if(sc[i]==' ')
		{
			lst.push_front(s);
			s.erase(s.begin(),s.end()) ;
			continue;
		}
	}	
	list<string>::iterator lst_iter;
	lst_iter = lst.begin();
	while(lst_iter!=lst.end())
	{

		cout<<*lst_iter++<<" ";
	}	
}

发表于 2019-08-19 14:01:09 回复(2)
string reverse_one_sentence(string sent){
    reverse(sent.begin(),sent.end());

    string::iterator p =sent.begin();
    string::iterator q = sent.end();
    int b = 0;
    int spacei = sent.find(' ');

    while(spacei !=sent.npos){
        reverse(sent.begin()+b,sent.begin()+spacei);
        b = spacei+1;
        spacei = sent.find(' ',spacei+1);
        if(spacei ==sent.npos) reverse(sent.begin()+b,sent.end());
    }

    return sent;
}
发表于 2019-08-17 22:28:11 回复(0)
py3
c='I an a boy'
print(" ".join(c.split(" ")[::-1]))

编辑于 2019-08-09 15:24:04 回复(2)