如何在JAVA中获得单词大写字母后反转单词?

问题描述 投票:1回答:2

假设您有一个字符串和一个大写字母表示一个单词的结尾。例如,如果您有wElovEcakE,其中E,E和K分别表示单词wE,lovE和cakE的结尾。您需要反转每个单词(因为您知道单词的结尾)。整体上不要颠倒弦。为了说明这一点,如果我们给wElovEcakE作为输入,则输出应该为EwEvolEkac。看到wE变成了Ew,lovE变成了Evol,依此类推。...

以及我尝试使用..的方式

 `import java.util.Scanner;

 public class Alternative{

public static void main(String[]args){

Scanner robo=new Scanner (System.in);

System.out.println("Enter  a word ");
String word=robo.nextLine();
char[] array=word.toCharArray();
for(int i =0;i<array.length;i++){
int count =0;
for(int j=0;j<=("EMPTY");j++)  // here i am trying to operate a loop where it will work up to the Capital letter.

count ++; 
}
 //Code incomplete
   }
}
}`

上面我在条件部分中提到了“空” ...我想操作一个循环,在该循环中,我的循环将工作至大写字母,然后我将计算所有我已算到大写字母的字母,然后最后一次步骤就像我将进行另一个循环,在该循环中我将反转所有字母,而该循环的条件将<= count;例如:lovE(算出的4个字母,我将反转四次)。

如果您认为我的方法是正确的,可以帮我在“空”部分写下条件吗?你们可以以其他任何方式帮助我解决问题吗?

java arrays string reverse
2个回答
0
投票

这里是使用StringBuilder类的解决方案

Scanner robo=new Scanner (System.in);
System.out.println("Enter  a word ");
String word=robo.nextLine();
String upperCase = word.toUpperCase(); //used to find uppercase letters

StringBuilder builder = new StringBuilder();
for (int i = 0; i < word.length(); i++) {
    char nextChar = word.charAt(i);
    builder.append(nextChar);
    if (nextChar == upperCase.charAt(i)) {
        String subWord = builder.reverse().toString();
        System.out.println(subWord); //It's not clear what to do with the found words
        builder = new StringBuilder();
    }
}

0
投票

测试是否适合您:

Scanner robo = new Scanner (System.in);
System.out.println("Enter  a word ");
String word = robo.nextLine();
String textInvert = "";
int indexAnt = 0;
for (int i = 0; i < word.length(); i++) {
    if (Character.isUpperCase(word.charAt(i))) {
        for (int j = word.substring(indexAnt, i + 1).length() - 1; j >= 0; j--)
            textInvert += word.substring(indexAnt, i + 1).charAt(j);
        indexAnt = i + 1;
    }
}
System.out.println(textInvert);
© www.soinside.com 2019 - 2024. All rights reserved.