我试图写一个快速的程序,在输入的字符串中计数空格的数量。这是我到目前为止所拥有的:
import java.util.Scanner;
public class BlankCharacters
{
public static void main(String[] args)
{
System.out.println("Hello, type a sentence. I will then count the number of times you use the SPACE bar.");
String s;
int i = 0;
int SpaceCount = 0;
Scanner keyboard = new Scanner(System.in);
s = keyboard.nextLine();
while (i != -1)
{
i = s.indexOf(" ");
s = s.replace(" ", "Z");
SpaceCount++;
}
System.out.println("There are " + SpaceCount + " spaces in your sentence.");
}
}
while循环首先使用s.indexOf(“”)查找字符串s中的第一个空格,将其替换为char Z,然后将值SpaceCount加1。此过程重复,直到s.indexOf没有找到空白,导致i为-1,从而停止循环。
换句话说,每次找到空白时,SpaceCount都会增加1,然后向用户显示空白的总数。或者应该是...
问题:空格计数不会增加,而是始终打印出2。
如果我输入“一二三四五”并打印出字符串s,我会得到“oneZtwoZthreeZfourZfive”,表示有四个空格(while循环运行四次)。尽管如此,SpaceCount仍然保持在2。
程序运行正常,但它始终显示2的空格计数,即使字符串/句子超过10或20个单词。即使使用do html" target="_blank">while/for循环,我也会得到同样的结果。我已经在这方面停留了一段时间,不知道为什么当while循环的其余部分继续执行时,SpaceCount会停留在2。
任何帮助都非常感谢!
使用这个,简单明了。将空格字符替换为none,并用字符串的实际长度减去它。这应该给出字符串中的空格数
Scanner n = new Scanner(System.in);
n.useDelimiter("\\n");
String s = n.next();
int spaceCount = s.length() - s.replaceAll(" ", "").length();
System.out.println(spaceCount);
你在计算空白方面走了很长的路。替换此代码块:
while (i != -1)
{
i = s.indexOf(" ");
s = s.replace(" ", "Z");
SpaceCount++;
}
为此:
char[] chars = s.toCharArray();
for(char c : chars){
if(c == ' '){
spaceCount++;
}
}
这有点优雅,而且(我相信)执行起来也比较便宜。希望这对你有用!
我只是很好奇为什么SpaceCount没有改变
在循环的第一次迭代中,您将"
替换为空(所有空格),并递增SpaceCount
。在第二次迭代中,您找不到任何内容(获取-1
)并替换任何内容,然后递增SpaceCount
(获取2
)。
我不修改String
,而是迭代String
中的字符并计算空格。
System.out.println("Hello, type a sentence. I will then count the "
+ "number of times you use the SPACE bar.");
Scanner keyboard = new Scanner(System.in);
String s = keyboard.nextLine();
int spaceCount = 0;
for (char ch : s.toCharArray()) {
if (ch == ' ') {
spaceCount++;
}
}
System.out.println("There are " + spaceCount + " spaces in your sentence.");
此外,按照惯例,变量名应该以小写字母开头。而且,通过在声明变量时初始化变量,可以使代码更加简洁。
本文向大家介绍C++中带空格字符串的输入问题解决,包括了C++中带空格字符串的输入问题解决的使用技巧和注意事项,需要的朋友参考一下 前言 字符串一直是一个重点加难点,很多笔试面试都会涉及,带空格的字符串更是十分常见,现在对字符串的输入问题进行一下总结。 C++用cin输入的时候会忽略空格以后的字符,比如 C++用cin输入的时候会忽略空格以后的字符,输入"hello world"输出的是"hell
使用我发现研究如何在字符串的字符之间插入空格的代码(这里),我修改了结果,但这并没有在“你好”和“世界”之间的空格周围插入额外的空格——你能让我知道我错过了什么吗?还有,L%2是做什么的?谢谢!将结果输出到浏览器是很重要的。
我是C#的新手,我有一些Java方面的基础知识,但我不能让这段代码正常运行。 它只是一个基本的计算器,但当我运行程序时,VS2008给了我这个错误: 我做了几乎相同的程序,但在Java使用的是JSwing,它运行得非常好。 下面是C#的形式: 会有什么问题?有没有办法解决? PS:我也试过 但没有奏效。
问题内容: 如何在Python 2.6中删除XML字符串中的空格和换行符?我尝试了以下软件包: etree:此代码段保留原始空格: 我不能使用将提供参数的Python 2.7 。 渺小:一样: 问题答案: 最简单的解决方案可能是使用lxml,您可以在其中设置解析器选项以忽略元素之间的空白: 这可能足以满足您的需求,但是有些警告是安全的: 这只会删除元素之间的空格节点,并尽量不要删除内容混合的元素内
字符串中存在的首尾空格一般情况下都没有任何意义,如字符串“ Hello ”,但是这些空格会影响到字符串的操作,如连接字符串或比较字符串等,所以应该去掉字符串中的首尾空格,这需要使用 String 类提供的 trim() 方法。 trim() 方法的语法形式如下: 使用 trim() 方法的示例如下: 从该示例中可以看出,字符串中的每个空格占一个位置,直接影响了计算字符串的长度。 如果不确定要操作的
问题内容: 我在JSF支持bean中具有以下方法: 我在数据表中显示此: 但是我得到以下异常: 它是怎么引起的,我该如何解决?\ 问题答案: 所以, 导致此: 您是否正在运行您认为正在运行的代码?的参与在堆栈跟踪指示是 实际上 像一个数组。数组值只能通过像整数索引来获得,但你用字符串访问它作为导致了这一例外。 确保返回,而不是,并且已将的正确版本声明为托管Bean。