接受一个句子并打印其中包含连续字符的单词

时间:2015-08-02 09:42:14

标签: java string character

接受一个句子并打印其中包含连续字符的单词

INPUT:嗨,我的狗很顽皮

输出:顽皮

import java.util.*;

public class Program6  {

    public static void main(String args[])
    {
        Scanner sc= new Scanner(System.in);
        System.out.println("Enter a Sentence : ");
        String s=sc.nextLine();
        s=s.toLowerCase();
        int l= s.length();
        s=' '+s+' ';
        int i;char c,d;int a,b,j=0; 
        for (i=0;i<l;i++)
        {
            c=s.charAt(i);
            d=s.charAt(i+1);
            a=c;
            b=d;
            if(d==' ')
             j=i;
            if((a+1)==b)
             System.out.println(s.substring(0,j));
            }
    }
}

它显示了类编译 - 没有语法错误但是输出没有正确显示,它显示的是不同的东西。

3 个答案:

答案 0 :(得分:2)

你的代码中存在多个问题,例如,在你的代码中,即使你发现一个单词中的两个连续字符是彼此相邻的,你也会尝试做子字符串,可能你永远不会设置j,因为你之前从未找到过空格因此你将0,0作为参数传递给substring方法。

更简单的方法是:

  1. 将句子拆分一个或多个空格
  2. 检查连续字符是否两个连续字符相互邻居。
  3. 如果是,则打印该单词,然后移至下一个单词
  4. 如果没有,那么转移到其他角色。

答案 1 :(得分:1)

 import java.util.*;
public class Ch8_30
{
    public static void main(String args[])
    {
     Scanner x= new Scanner(System.in);
     String s;int i=0,b=0,a=0,c=0;
     System.out.println("enter a string");
     s=x.nextLine().toUpperCase();
     String m[]=s.split("\\s");
     for(i=0;i<m.length;i++)
     {
         b=0;
         for(a=0;a<m[i].length();a++)
         {
             if(a==m[i].length()-1)
             break;

             if((char)(m[i].charAt(a)+1)==m[i].charAt(a+1))
             {
                 b++;c++;
                 System.out.println(m[i]);
                 break;
             }

         }     
     }
     System.out.println("no. of words "+c);
    }
}

答案 2 :(得分:0)

试一试 将字符串转换为小写字母后 -

    s=s+" ";
    l=s.length();
    for(i=0;i<l;i++)
    {
        ch=s.charAt(i);
        if(ch!=' ')
        w=w+ch;
        else
        {
            word=w;
            w="";
            for(j=0;j<word.length()-1;j++)
            {
                c=word.charAt(j);
                d=word.charAt(j+1);
                if(d==c+1)
                System.out.print(word+"  ");
            }
        }
    }