我正在尝试编写一个用户输入短语的程序,程序会计算空格并告诉用户有多少空格。使用for循环,但我被卡住,有人可以帮助我吗?
import java.util.Scanner;
public class Count
{
public static void main (String[] args)
{
String phrase; // a string of characters
int countBlank; // the number of blanks (spaces) in the phrase
int length; // the length of the phrase
char ch; // an individual character in the string
Scanner scan = new Scanner(System.in);
// Print a program header
System.out.println ();
System.out.println ("Character Counter");
System.out.println ();
// Read in a string and find its length
System.out.print ("Enter a sentence or phrase: ");
phrase = scan.nextLine();
length = phrase.length();
// Initialize counts
countBlank = 0;
// a for loop to go through the string character by character
for(ch=phrase.charAt()
// and count the blank spaces
// Print the results
System.out.println ();
System.out.println ("Number of blank spaces: " + countBlank);
System.out.println ();
}
}
答案 0 :(得分:3)
用于计算空格的for
循环将写成如下:
for(int i=0; i<phrase.length(); i++) {
if(Character.isWhitespace(phrase.charAt(i))) {
countBlank++;
}
}
其内容如下:“i
是一个索引,范围从第一个字符的索引到最后一个字符的索引。对于每个字符(得到phrase.charAt(i)
),如果它是空格(我们在这里使用Character.isWhitespace
效用函数),则递增countBlank
变量。“
答案 1 :(得分:0)
答案 2 :(得分:0)
我对java不太熟悉,但是如果你可以访问字符串中的每个字符。 你可以写这样的东西。
int nChars = phrase.length();
for (int i = 0; i < nChars; i++) {
if (phrase.charAt(i) == ' ') {
countBlank++;
}
}
答案 3 :(得分:0)
只是想知道,你不能只拆分由空格输入的字符串并将数组的长度减去1吗?
在C#中它会像
一样微不足道string x = "Hello Bob Man";
int spaces = x.Split(' ').Length - 1;
非常确定java有分裂?即使你有两个连续的空间也能工作。
答案 4 :(得分:0)
你必须完成循环和计算空间
//replace this lines
for(ch=phrase.charAt()
// and count the blank spaces
//to this lines
for (int i = 0; i < phrase.length(); i++)
{
if(phrase.charAt(i) == ' ') countBlank++;
}
答案 5 :(得分:0)
你可能对每个循环都有问题
char[] chars = phrase.toCharArray(); Change string into array of chars.
for(char c : phrase.toCharArray()) { //For each char in array
if(Character.isWhitespace(c) { //Check is white space.
countBlank++; //Increment counter by one.
}
}
或
for(int i =0; i <phrase.lenght(); i++) {
if(Character.isWhitespace(phrase.charAt(i)) { //Check is the character on position i in phrase is a white space.
countBlank++; //Increment counter by one.
}
}
答案 6 :(得分:-1)
这是以下Java Tutorials
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class SplitDemo2 {
private static final String REGEX = "\\d";
private static final String INPUT = "one9two4three7four1five";
public static void main(String[] args) {
Pattern p = Pattern.compile(REGEX);
String[] items = p.split(INPUT);
for(String s : items) {
System.out.println(s);
}
}
}
OUTPUT:
one
two
three
four
five
空格的正则表达式是\ s
希望有所帮助。