Java 反转用户给定字符串中的每个单词,而不改变其位置
我需要一点帮助。我发现了一个类似于的问题:“编写一个Java程序,它将反转用户给定字符串中的每个单词,而不改变它们的位置,也不使用任何内置函数。” 我解出了一个代码来颠倒整个句子,但我不知道怎么解这个。请帮帮我Java 反转用户给定字符串中的每个单词,而不改变其位置,java,string,reverse,Java,String,Reverse,我需要一点帮助。我发现了一个类似于的问题:“编写一个Java程序,它将反转用户给定字符串中的每个单词,而不改变它们的位置,也不使用任何内置函数。” 我解出了一个代码来颠倒整个句子,但我不知道怎么解这个。请帮帮我 import java.io.*; class test25 { public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReade
import java.io.*;
class test25 {
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter string: ");
String s = br.readLine();
String reverse = "";
int length = s.length();
for (int i = length - 1; i >= 0; i--)
reverse = reverse + s.charAt(i);
System.out.println("Result:" + reverse);
}
}
1) 拆分句子(使用Split(),这将返回一个数组,比如单词[])
2) 反转数组单词[]中的每个单词
3) 从数组单词[]中重建句子。这里有一个解决方案:
public static String reverseEach(String inputString) {
String[] parts = inputString.split(" ");
StringBuilder sb = new StringBuilder();
for (String p : parts) {
sb.append(new StringBuffer(p).reverse().toString());
sb.append(' ');
}
return sb.toString();
}
String str=“hello world”;
字符串revStr=reverseWordByWord(str);
公共字符串reverseWordByWord(字符串str){
int strLeng=str.length()-1;
字符串反向=”,临时=”;
对于(int i=0;i=0;j--){
反向+=温度特性(j);
如果((j==0)&(i!=strLeng))
反向+=”;
}
温度=”;
}
}
反向返回;
}
输入:hello world
输出:olleh dlrow下面是实现@Maximin答案的简单代码
public class Reverse {
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();
String[] words = input.split(" ");
String reverse = "";
for (int i = 0; i < words.length; i++) {
for (int j = words[i].length() - 1; j >= 0; j--) {
reverse += words[i].charAt(j);
}
System.out.print(reverse + " ");
reverse = "";
}
}
}
公共类反向{
公共静态void main(字符串args[])引发IOException{
BufferedReader br=新的BufferedReader(新的InputStreamReader(System.in));
字符串输入=br.readLine();
String[]words=input.split(“”);
字符串反向=”;
for(int i=0;i=0;j--){
反向+=字[i].字符(j);
}
系统输出打印(反转+“”);
反向=”;
}
}
}
通过声明String[]reverse=newstring[words.length],还可以将反转的字符串放入它们自己的数组中代码>,允许您根据需要重建句子或格式化输出。类程序
{
静态void Main(字符串[]参数)
{
int i=0,j=0;
字符串测试=“你好,先生,我很好”;
StringBuilder sb=新的StringBuilder();
char[]str=test.ToCharArray();
char[]revstr;
而(i=j;)
{
if (str[k] == ' ')
{
for (int l = k; l < i; l++)
{
sb.Append(str[l+1]);
}
sb.Append(" ");
i = k - 1;
}
k--;
}
for (j = 0; j <= i; j++)
sb.Append(str[j]);
Console.WriteLine(sb);
Console.ReadLine();
if(str[k]='')
{
对于(int l=k;l对于(j=0;j非常简单的代码在这里
class reverse{
public static StringBuilder sb;
public static void main(String args[])
{
String str[] = "He is the one".split(" ");
String finalStr="";
for(int i = str.length-1; i>= 0 ;i--)
{
finalStr += str[i]+" ";
finalStr.toString();
sb=new StringBuilder(finalStr);
sb.reverse();
}
System.out.print(sb);
}
}
我也遇到了一个类似的问题,但没有回答清楚,因为我的方法对于评估我答案的人来说太复杂了,我在这里分享,希望它能帮助别人
package interviewPractice;
import java.util.Scanner;
public class SentenceToWord
{
public static int getNumberOfWords(String sentence)
{
int counter=0;
for(int i=0;i<sentence.length();i++)
{
if(sentence.charAt(i)==' ')
counter++;
}
return counter+1;
}
public static char[] getSubString(String sentence,int start,int end) //method to give substring, replacement of String.substring()
{
int counter=0;
char charArrayToReturn[]=new char[end-start];
for(int i=start;i<end;i++)
{
charArrayToReturn[counter++]=sentence.charAt(i);
}
return charArrayToReturn;
}
public static char[][] getWordsFromString(String sentence)
{
int wordsCounter=0;
int spaceIndex=0;
int length=sentence.length();
char wordsArray[][]=new char[getNumberOfWords(sentence)][];
for(int i=0;i<length;i++)
{
if(sentence.charAt(i)==' ' || i+1==length)
{
wordsArray[wordsCounter++]=getSubString(sentence, spaceIndex,i+1); //get each word as substring
spaceIndex=i+1; //increment space index
}
}
return wordsArray; //return the 2 dimensional char array
}
public static void main(String[] args)
{
System.out.println("Please enter the String");
Scanner input=new Scanner(System.in);
String userInput=input.nextLine().trim();
int numOfWords=getNumberOfWords(userInput);
char words[][]=new char[numOfWords+1][];
words=getWordsFromString(userInput);
System.out.println("Total number of words found in the String is "+(numOfWords));
for(int i=0;i<numOfWords;i++)
{
System.out.println(" ");
for(int j=0;j<words[i].length;j++)
{
System.out.print(words[i][j]);//print out each char one by one
}
}
}
}
package面试实践;
导入java.util.Scanner;
公共类句子
{
公共静态int getNumberOfWords(字符串语句)
{
int计数器=0;
对于(inti=0;i,这里有一个解决方案
fucntion String reverseSentence(String sentence){
String Rword = "";
String newSentence = "";
char space = ' ';
String empty = "";
if(sentence == null || sentence == empty)
return null; // this could be an error message
else{
int tempi = 0;
if(sentence.charAt(0) == space){
Rword = Rword+sentence.charAt(0); // check for when the first char is a space
tempi++;
}
for(int i=tempi; i< sentence.length(); i++){
if(sentence.charAt(i) == space) //if it reaches a space its a word
{
Rword = Rword+sentence.charAt(i); //add the current space
newSentence = newSentence+Rword ; //give the reversed word to the new sentence
Rword = ""; // then empty the word
}else{
Rword = sentence.charAt(i)+Rword ; //while its not a space, reverse.
}
}
newSentence = newSentence+Rword; // the last char might not be a space to so the first
// if statement in the loop will never happen again,
//i add the last word after the loop
return newSentence;
}
}
功能字符串反转内容(字符串句子){
字符串Rword=“”;
字符串newSentence=“”;
字符空间=“”;
字符串为空=”;
如果(句子==空| |句子==空)
return null;//这可能是一条错误消息
否则{
int-tempi=0;
如果(句子.charAt(0)=空格){
Rword=Rword+句子.charAt(0);//检查第一个字符何时为空格
tempi++;
}
for(int i=tempi;i<句子长度();i++){
if(句子.字符(i)=空格)//如果它到达一个空格,它就是一个单词
{
Rword=Rword+句子.charAt(i);//添加当前空格
newSentence=newSentence+Rword;//将相反的单词赋给新句子
Rword=”“;//然后清空单词
}否则{
Rword=句子。charAt(i)+Rword;//如果不是空格,则相反。
}
}
newSentence=newSentence+Rword;//最后一个字符可能不是第一个字符的空格
//如果循环中的语句再也不会发生,
//我在循环后添加最后一个单词
返回新闻事件;
}
}
使用空格拆分字符串,然后循环遍历字符串数组的每个元素并将其反转:
公共类字符串反转{
if (str[k] == ' ')
{
for (int l = k; l < i; l++)
{
sb.Append(str[l+1]);
}
sb.Append(" ");
i = k - 1;
}
k--;
}
for (j = 0; j <= i; j++)
sb.Append(str[j]);
Console.WriteLine(sb);
Console.ReadLine();
public static void main(String args[])
{
String eString=" \"This is the one\"";
String double_quoteString[]=eString.split("\"");
eString=double_quoteString[1];
String[] splitStrings=eString.split("\\s+");
String reverse="";
for(int i=0;i<splitStrings.length;i++)
{
if(i!=0)
reverse+=" ";
for(int j=splitStrings[i].length()-1;j>=0;j--)
{
reverse+=splitStrings[i].charAt(j);
}
}
reverse="\""+reverse+"\"";
System.out.println("reverse is "+reverse);
}
publicstaticvoidmain(字符串参数[])
{
字符串eString=“\”这是一个\”;
字符串双引号字符串[]=字符串拆分(“\”);
eString=双倍“eString[1];
String[]splitStrings=eString.split(\\s+);
字符串反向=”;
对于(int i=0;i=0;j--)
{
reverse+=splitStrings[i].charAt(j);
}
}
反向=“\”+反向+“\”;
System.out.println(“反向为”+反向);
}
}
我也试过这个。因为我正在学习java,所以我用简单的方式尝试了这个代码。如果我在代码或逻辑上有任何错误,请纠正我。谢谢……;一个不同的解决方案和一个简单的解决方案
public class strrev {
public static void main(String[] args)throws IOException {
// TODO Auto-generated method stub
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter the string to be reversed");
String str=br.readLine();
char rev;
int k=0;
for(int i=0;i<str.length();i++)
{
if(str.charAt(i)==32 ||i==str.length()-1)
{
for(int j=i;j>=k;j--)
{
rev=str.charAt(j);
System.out.print(rev);
}
k=i;
continue;
}
}
}
}
公共类strev{
公共静态void main(字符串[]args)引发IOException{
//TODO自动生成的方法存根
BufferedReader br=新的BufferedReader(新的InputStreamReader(System.in));
System.out.println(“输入要反转的字符串”);
字符串str=br.readLine();
char rev;
int k=0;
对于(int i=0;i=k;j--)
{
rev=str.charAt(j);
系统输出打印(修订版);
}
k=i;
继续;
}
}
}
}
简单解决方案:
首先,我们通过扫描仪输入一个字符串
然后我们用空格分开。
然后我们使用for循环将其反转并输出
public class reverse{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("enter string");
String s = sc.nextLine();
String [] words = s.split(" "); // space for words
for(int i = words.length - 1; i >= 0; i--)
{
System.out.print(words[i] + " ");
}
}
}
反向串
import java.util.*;
public class Main
{
public static void main(String[] args)
{
String m="java is great";
String temp="";
System.out.println(m);
String store="";
int cnt=0;
char [] p=m.toCharArray();
for(int i=p.length-1;i>=0;i--)
{
if(p[i]==' '||i==0)
{
if(cnt>=1||i==0)
{
if(i==0)
temp=temp+p[i];
store=store+new StringBuilder(temp).reverse().toString();
temp="";
cnt=0;
}
if(p[i]==' ')
{
store=store+p[i];
}
}
else
{
temp=temp+p[i];
System.out.println(p[i]);
cnt++;
}
}
System.out.println(store);
}
}
Output.great是java公共统计
public static void main(String[] args) {
String s;
s="hi Mister geek is here";//input string
int j=0;//for tracking each word
for(int i=0;i<s.length();i++)//loop for the string
{
if((int)s.charAt(i)==32/*if has space checked by ascii code of the space */||i==s.length()-1/* for the end of string */)
{
for(int u=i;u>=j;u--)// loop for each word
System.out.print(s.charAt(u));
j=i;
}
}
}
public static void main(String[] args) {
String s;
s="hi Mister geek is here";//input string
int j=0;//for tracking each word
for(int i=0;i<s.length();i++)//loop for the string
{
if((int)s.charAt(i)==32/*if has space checked by ascii code of the space */||i==s.length()-1/* for the end of string */)
{
for(int u=i;u>=j;u--)// loop for each word
System.out.print(s.charAt(u));
j=i;
}
}
}
class p3`
//Reverse each word of user given string without altering their position
{
public static String reverseWord(String word)
{
String r="";
int len=word.length();
for(int i=0;i<len;i++)
{
r=word.charAt(i)+r;
}
return r;
}
public static void main(String args[])throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter string: ");
String s = br.readLine()+' ';
String rev="",s1="";
int l=s.length();
for(int i=0;i<l;i++)
{
if (s.charAt(i)!=' ')
{
rev=rev+s.charAt(i);
}
else
{
rev=reverseWord(rev);
s1=s1+rev+" ";
rev="";
}
}
System.out.println(s1);
}}
public class ReverseWordByword {
private String sentence="My java virtual world";
private String newReverse;
public ReverseWordByword() {
newReverse="";
}
public static void main(String[] args) {
new ReverseWordByword().wordReverse();
}
public void wordReverse(){
String arr[]=sentence.split("\\ ");
for(int i=0;i<arr.length;i++){
newReverse=newReverse+reverseLogic(arr[i])+" ";
}
System.out.println(newReverse);
}
public String reverseLogic(String word){
String localWord="";
char[] charArr=word.toCharArray();
for(int i=word.length()-1;i>=0;i--){
localWord=localWord+charArr[i];
}
return localWord;
}
}
public class ReverseWord {
public static void main(String[] args) {
String s = "My name is Sarthak ";
StringBuffer sb = new StringBuffer();
int n = s.length();
int j =n;
int i;
for(i = n-1;i>=0;i--){
if(s.charAt(i) == ' '){
sb.append(s.substring(i+1, j));
sb.append(" ");
j = i;
}
}
sb.append(s.substring(0,j));
System.out.println(sb);
}
}
public static String reverseWordWise(String input) {
String[] words = input.split(" ");
String reversestr = "";
for(int i = words.length-1; i >= 0; i--){
if(i == words.length-1){
reversestr = reversestr + words[i];
}else{
reversestr = reversestr + " " + words[i];
}
}//end of for loop
return reversestr;
}
public class ReverseEachWord {
static void reverseEachWordOfString(String inputString)
{
String[] words = inputString.split(" ");
String reverseString = "";
for (int i = 0; i < words.length; i++)
{
String word = words[i];
String reverseWord = "";
for (int j = word.length()-1; j >= 0; j--)
{
reverseWord = reverseWord + word.charAt(j);
}
reverseString = reverseString + reverseWord + " ";
}
System.out.println(inputString);
System.out.println(reverseString);
System.out.println("-------------------------");
}
public static void main(String[] args)
{
reverseEachWordOfString("");
reverseEachWordOfString("");
reverseEachWordOfString("");
reverseEachWordOfString("");
}
}
public String reverseString(String s) {
String res = "";
String reverseFirstPart = "";
String reverseLastPart = "";
for (int i=0; i < s.length(); i++){
if (s.substring(i,i+1).equals(" ") ){
String firstPart = s.substring(0,i);
String lastPart = s.substring(i+1,s.length());
reverseFirstPart = new StringBuilder(firstPart).reverse().toString();
reverseLastPart = new StringBuilder(lastPart).reverse().toString();
res = reverseFirstPart + " " + reverseLastPart;
} else {
res = s.substring(i,i+1)+res;
}
} return res.substring(reverseLastPart.length());
}
public static void main(String[] args) {
String s = "hello dear";
String su= "";
//split the words
String words [] =s.split(" ");
//iterate each word and reverse using sb.reverse
//and append in the string with " "
for (String w:words) {
StringBuilder sb = new StringBuilder(w);
sb.reverse();
su += sb.toString()+" ";
}
System.out.println(su.trim());
//prints "olleh raed"
}
public class Main {
public static void main(String[] args) {
String[] s = new Scanner(System.in).nextLine().split(" ");
for ( String rs : s) {
System.out.print(new StringBuilder(rs).reverse()+" ");
}
}
}
public class ReverseSent {
public String Reverse(String s) {
String s1="",s2="",s3="";
int l = s.length();
for(int i=1;i<=l;i++) {
if(s.charAt(l-i)==' '||(l-i)==0) {
for(int j=1;j<=s2.length();j++) {
s1=s1+s2.charAt(s2.length()-j);
}
s3=s3+s1+" ";
s1="";
s2="";
}else if((l-i)==1){
s2=s2+s.charAt(l-i)+s.charAt(0);
}else {
s2=s2+s.charAt(l-i);
}
}
return s3;
}
public static void main(String[] args) {
ReverseSent rs = new ReverseSent();
String s = "Hello i am ashish";
System.out.println(rs.Reverse(s));
}
}
package com.learning.misc;
public class WordReversal {
public static void main(String[] args) {
String str = "functional Interface is core concept of Lambda";
char arr[] = str.toCharArray();
int temp = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] == ' ' || i == arr.length-1) {
for (int j = i; j >= temp; j--) {
System.out.print(arr[j]);
}
temp = i+1;
System.out.print(" ");
}
}
}
}
public static void main(String arg[])
{
String reversedString = "";
String givenString = "My name is vishal kumar";
givenString = " " + givenString;
while(givenString.contains(" "))
{
reversedString += (givenString.substring(givenString.lastIndexOf(" "), givenString.length()));
givenString = givenString.substring(0, givenString.lastIndexOf(" "));
}
System.out.println(reversedString.trim());
}