接受一个句子并打印其中包含连续字符的单词
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));
}
}
}
它显示了类编译 - 没有语法错误但是输出没有正确显示,它显示的是不同的东西。
答案 0 :(得分:2)
你的代码中存在多个问题,例如,在你的代码中,即使你发现一个单词中的两个连续字符是彼此相邻的,你也会尝试做子字符串,可能你永远不会设置j,因为你之前从未找到过空格因此你将0,0作为参数传递给substring方法。
更简单的方法是:
答案 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+" ");
}
}
}