java - 检查每个单词后面是否有空格

标签 java character

我无法弄清楚如何判断该程序中是否有空格。该程序应该获取一个字符串,将其更改为字符数据,然后将每个单词的第一个字母大写。

代码如下:

   import java.util.*;
public class wrapper1
{
    public static void main(String[] args)
    {
        Scanner input = new Scanner(System.in);
        String s1;
        System.out.println("Enter a phrase: ");
        s1=input.nextLine();
        s1=s1.trim();
        int counter;
        char c;
        boolean flag=true;

        for(counter=0; counter < s1.length(); counter++)
        {
            c=s1.charAt(counter);
            while(counter < s1.length())
            {
                if(flag==true)
                {
                    Character.toUpperCase(c);
                    flag=false;
                }
                else if(!Character.isLetter(c))
                {
                    flag=true;
                }
            }
            System.out.print(c);
        }
    }
}

我做了一个循环,该循环的目标是通过将标志设置为 false 来遍历数据,将每个单词的第一个字母大写,然后在发现空格时返回 true。

但是,我不知道如何编写 else if 语句来检查空格,因此这就是我正在寻找的(一种编写该语句的方法)。

感谢任何帮助。

最佳答案

要更正您的代码,请删除 while 语句并将 toUpperCase 的结果分配给 c,如 ZouZou 提到的

public static void main (String[] args) throws java.lang.Exception
{
    Scanner input = new Scanner(System.in);
    String s1;
    System.out.println("Enter a phrase: ");
    s1=input.nextLine();
    s1=s1.trim();
    int counter;
    char c;
    boolean flag=true;

    for(counter=0; counter < s1.length(); counter++)
    {
        c=s1.charAt(counter);
        if(flag==true)
        {
            c = Character.toUpperCase(c);
            flag=false;
        }
        else if(s1.charAt(counter)==' ')
        {
            flag=true;
        }
        System.out.print(c);
    }
}

请注意,您的解决方案仅将空格视为分隔符,而不是其他空格(例如制表符)或一系列空格字符。

这是一个处理选项卡和序列的更简洁的解决方案

for(String s : s1.split("\\s+")){
    System.out.print(Character.toUpperCase(s.charAt(0)) + s.substring(1) + " ");
}

更简洁的版本是使用 Apache Commons WordUtils.capitalize

关于java - 检查每个单词后面是否有空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23437535/

相关文章:

java - 如何在当前链表中复制我的节点?

java - JMeter配置: Performance testing after Login

java - 如何防止在 Android 应用程序中创建多个数据库?

java - 当 Java 应用程序位于负载均衡器后面时,在某些 URL 上强制使用 SSL

swift - 尽管 ShouldChangeCharactersIn 函数,文本字段仍允许所有字符

java - 在 RTF 消息 JavaMail 中发送表格

替换R中字符句子中的单词

javascript - 包含特殊字符的字符串数组

java - 如何从字符串中获取数字和非数字值

java - Java 中的百分比编码空格问题