java编写一程序,分别计算所输入的字符串中空格,换行符的个数。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java编写一程序,分别计算所输入的字符串中空格,换行符的个数。相关的知识,希望对你有一定的参考价值。
编写一程序,分别计算所输入的字符串中空格,换行符的个数。
输入可以是键盘上的任意字符。
分别输出空格,换行符的个数,输出的结果一行显示,数字之间以空格格开。
【输入样例】
bb ss pp=
fz
【输出样例】
2 1
【样例说明】
字符b与s之间有一个空格,s与p之间有一个空格,=与f之间有一个换行。
注意:fz之前没有空行。
import java.util.Scanner;
public class F
public static void main(String[] args)
//空格数
int space = 0;
//换行数
int line = 0;
Scanner s = new Scanner(System.in);
String str = "-1";
while (!"t".equalsIgnoreCase(str))
str = s.nextLine();
line++;
char[] ch = str.toCharArray();
for (int i = 0; i < ch.length; i++)
if (Character.isSpaceChar(ch[i]))
space++;
line=line-2;
System.out.println(space+" "+line);
控制台输出结果:
参考技术A 错误原因:编译错误,主要是因为你写注释的方法不对。应该用“//”,或者“/**/”,而不是“\\”
代码:
#include <stdio.h>
#include <string.h>
int main(void)
int cnt_s = 0; // space
int cnt_t = 0; // enter
int cnt_o = 0; // other
printf("Please enter some characters:");
char buffer[1024] = 0;
gets(buffer);
for(int i=0; i<strlen(buffer); ++i)
char curChar = buffer[i];
if (curChar == ' ')
cnt_s++;
else if (curChar == '\n')
cnt_t++;
else
cnt_o++;
printf("The number of space is %d\n",cnt_s);
printf("The number of Enter is %d\n",cnt_t);
printf("The number of other character is %d\n",cnt_o);
printf("Done!\n");
return 0;
C中空格的转义序列是啥?
【中文标题】C中空格的转义序列是啥?【英文标题】:What's the escape sequence for blanks in C?C中空格的转义序列是什么? 【发布时间】:2011-03-19 07:06:59 【问题描述】:我正在编写一个程序来计算空格、制表符和换行符。我记得制表符和换行符的转义序列是什么,但是空白呢? \b
?还是那个退格?
【问题讨论】:
@sipwiz - 虽然 \0x20 通常可用于空格,但需要担心不同字符编码的问题。并非所有 8 位编码都是基于 ASCII 的,如今的字节流可能是编码的 unicode 字符串。 \0x20 当然对于 UTF-8 是正确的,但对于其他一些编码则不正确。这些可能使用其他类型而不是 char 数组来表示,但不一定 - char 数组作为字节流是 I/O 处理的常见模式,无论字节表示什么。 @Steve314 如果 OP 使用的是非 ASCII 或非 UTF8 编码,那么一个不错的选择是他已经知道他的问题的答案,因为他已经有几个箍了跳过:)。 @sipwiz - 代码被回收和移动。关键是代码的可移植性很好。无论它是为什么平台编写的,它以后都可能在其他平台上运行。 【参考方案1】:您是指"a b"
中的“空白”吗?那是一个空格:' '
。
这里有一个list of escape sequences 供参考。
【讨论】:
【参考方案2】:如果要检查字符是否为空格,可以使用<ctype.h>
中的isspace()
函数。在默认的 C 语言环境中,它会检查空格、制表符、换页符、换行符、回车符和垂直制表符。
【讨论】:
【参考方案3】:空格就是' '
,十六进制存储为20,也就是32的整数等价物。例如:
if (a == ' ')
检查整数 32。同样:
if (a == '\n')
检查整数 10,因为 \n
是十六进制的 0A
,即整数 10。
以下是其他最常见的转义序列及其对应的十六进制和整数:
code: │ name: │Hex to integer:
──────│────────────────────────│──────────────
\n │ # Newline │ Hex 0A = 10
\t │ # Horizontal Tab │ Hex 09 = 9
\v │ # Vertical Tab │ Hex 0B = 11
\b │ # Backspace │ Hex 08 = 8
\r │ # Carriage Return │ Hex 0D = 13
\f │ # Form feed │ Hex 0C = 12
\a │ # Audible Alert (bell)│ Hex 07 = 7
\\ │ # Backslash │ Hex 5C = 92
\? │ # Question mark │ Hex 3F = 63
\' │ # Single quote │ Hex 27 = 39
\" │ # Double quote │ Hex 22 = 34
' ' │ # Space/Blank │ Hex 20 = 32
【讨论】:
【参考方案4】:\b
是退格 (ASCII 0x8)。对于常规空间(ASCII 0x20),您不需要转义。您可以使用' '
。
【讨论】:
实际上,它可能对空格被“规范化”的情况很有用,例如在 XML 字段中【参考方案5】:'\b' 是退格键,你不需要空格的转义序列,因为 ' ' 就可以了。
【讨论】:
以上是关于java编写一程序,分别计算所输入的字符串中空格,换行符的个数。的主要内容,如果未能解决你的问题,请参考以下文章