接受一个句子并打印其中包含连续字符的单词
Accept a sentence and print the words that have consecutive characters in them
接受一个句子并打印其中包含连续字符的单词
输入:嗨,我的狗很调皮
输出:嗨淘气
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));
}
}
}
它显示 class compiled-no syntax error 但输出不正确,它显示了一些不同的东西。
你的代码中有多个问题,比如,在你的代码中,即使你发现一个单词中的两个连续字符彼此相邻,你尝试做子字符串,但可能你永远不会 setter j 因为您之前从未找到 space,因此您将 0,0 作为参数传递给子字符串方法。
更简单的方法是:
- 将句子分成一个或多个 space
- 检查连续字符是否两个连续字符彼此相邻。
- 如果他们打印那个词,然后移动到下一个词(如果有的话)
- 如果没有则移动到其他字符。
试试这个
将字符串转换为小写后-
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+" ");
}
}
}
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);
}
}
接受一个句子并打印其中包含连续字符的单词
输入:嗨,我的狗很调皮
输出:嗨淘气
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));
}
}
}
它显示 class compiled-no syntax error 但输出不正确,它显示了一些不同的东西。
你的代码中有多个问题,比如,在你的代码中,即使你发现一个单词中的两个连续字符彼此相邻,你尝试做子字符串,但可能你永远不会 setter j 因为您之前从未找到 space,因此您将 0,0 作为参数传递给子字符串方法。
更简单的方法是:
- 将句子分成一个或多个 space
- 检查连续字符是否两个连续字符彼此相邻。
- 如果他们打印那个词,然后移动到下一个词(如果有的话)
- 如果没有则移动到其他字符。
试试这个 将字符串转换为小写后-
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+" ");
}
}
}
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);
}
}