我想编写一个程序来计算以大写字母开头的单词数。它只算不了。大写字母不是单词试试这一行 “你好你好吗” 根据我的代码输出将是3 但他们只有一个单词以大写字母“嗨”开头......所以我怎么能解决这些问题......请帮我解决这个问题。
import java.util.*;
class Cap
{
public static void main(String m[])
{
Scanner in=new Scanner(System.in);
String s=new String();
System.out.println("Enter a line:");
s=in.nextLine();
char c;
int ct=0;
for(int i=0;i<s.length();i++)
{
c=s.charAt(i);
if(c>=65 && c<=90)
{
ct++;
}
}
System.out.println("total number of words start with capital letters are :"+ct);
}
}
答案 0 :(得分:2)
你最好使用scanner.next();
,它以其他方式将标记返回到空格 word 。现在,你可以检查{{1}返回的字符串的第一个字符是大写还是不大写。
对于语句这是StackOverflow ,您将有三个令牌,next()
,This
和is
,您可以在此StackOverflow
上使用String.charAt(0)
{1}}。
此外,您只需使用Character.isUpperCase
方法检查字符是否为大写。
答案 1 :(得分:1)
导入java.util。*; 公共课程program_6 {
GtkWindow { background-color: #333; }
}
答案 2 :(得分:0)
目前,您正在计算输入的所有大写字母。 你想要做的是在空间上分割线,如果它是大写的话,只检查第一个字母。
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
String s;
System.out.println("Enter a line:");
s=in.nextLine();
int ct=0;
for(String str: s.split(" ")) {
if(str.charAt(0)>=65 && str.charAt(0)<=90)
{
ct++;
}
}
System.out.println("total number of words start with capital letters are :"+ct);
}
答案 3 :(得分:0)
您正在比较每个字符。相反,您可以在字符串的开头添加一个空格,并检查空格后的每个字符是否为大写。
Scanner in = new Scanner(System. in );
String s = new String();
System.out.println("Enter a line:");
s = " " + in .nextLine().trim();
char c;
int ct = 0;
for (int i = 1; i < s.length(); i++) {
c = s.charAt(i);
if (c >= 65 && c <= 90 && s.charAt(i - 1) == 32) {
ct++;
}
}
System.out.println("total number of words start with capital letters are :" + ct);
或更好地使用TAsk所说的scanner.next()
答案 4 :(得分:0)
试试这个:
Scanner in = new Scanner(System.in);
String s = new String();
System.out.println("Enter a line:");
s = in.nextLine();
char c;
int ct = 0;
for (int i = 0; i < s.length(); i++) {
c = s.charAt(i);
if (Character.isUpperCase(c)
&& (i == 0 || Character.isWhitespace(s.charAt(i - 1)))) {
ct++;
}
}
System.out
.println("total number of words start with capital letters are :"
+ ct);
答案 5 :(得分:0)
首先,我们检查第一个位置是否以大写字母开头,并且仅用于以大写字母开头的字符串...如果是,则计数将递增。下一个条件(用于以空格或其他任何字符串开头的字符串)将检查左位置必须有空格才能开始新单词,并且字符必须为大写字母以增加计数变量...
import java.util.*;
public class program_6
{
public static void main(String[] args)
{
String s1;
Scanner scan = new Scanner(System.in);
System.out.println("Enter the string... ");
s1 = scan.nextLine();
int count=0,i=0,n;
n = s1.length();
System.out.println("Size of the string is... " + n );
if ( null == s1 || s1.isEmpty())
{
System.out.println("Text empty");
}
else
{
if( Character.isUpperCase(s1.charAt(0) ))
{
count++;
}
for (i=1 ; i<n ; i++)
{
if ( Character.isWhitespace(s1.charAt(i-1)) && Character.isUpperCase(s1.charAt(i) ) )
{
count++;
}
}
}
System.out.println("Number of the word wich starts with capital letter... " + count );
}
}