首页 > 解决方案 > 如何在Java中的句子/字符串中打印每个其他单词(不是单个字符)?

问题描述

我想打印一个句子/字符串中的所有其他单词。并且在输出中,第一个字母应该是大写的。
例子:

Enter a string: Hello how are you doing today?
The resulting string is: 
How you today?

这是我尝试过的代码。它工作正常,但我想改进代码。请让我知道可以在代码中进行哪些改进。我与 StringBuilder 的合作不多。所以,我想用它编写代码,或者我是否可以使用不同的函数编写代码。
提前致谢。

import java.util.*; 
 
public class Main{

    public String skipWords(String str){
        String a ="";
            String[] wordsArr = str.split(" ");
            for(int i = 0 ; i< wordsArr.length; i++){
                if(i%2 != 0) 
                        a= a+wordsArr[i] + " ";
                    else 
                        a = a.replace(wordsArr[i]," ");
            }
        return a; 
    }

    public String fCapital(String str){
            String f = str.substring(0, 1);
            String r = str.substring(1);
            f = f.toUpperCase();
            String c = f + r;
            return c;
    }

    public static void main(String[] args){
            String result = "";
            Main obj = new Main();
            Scanner sc= new Scanner(System.in); 
            System.out.print("Enter a string: ");  
            String str= sc.nextLine();      
            String w = obj.skipWords(str);
            result = obj.fCapital(w);   
            System.out.println("The resulting string is: ");
            System.out.println(result);   
    }
}

标签: javastring

解决方案


看一看:

public String skipWords(String sentence) {
    String[] words = sentence.split(" ");
    StringBuilder result = new StringBuilder();

    for (int i = 1; i < words.length + 1; i += 2) {
        result.append(words[i]).append(" ");
    }
    return result.toString();
}

推荐阅读