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】:

如果要检查字符是否为空格,可以使用&lt;ctype.h&gt; 中的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编写一程序,分别计算所输入的字符串中空格,换行符的个数。的主要内容,如果未能解决你的问题,请参考以下文章

题目1019:简单计算器-------注意此题的输入中空格和字符和数字的关系,该用数据结构的时候就得用

Python关于去除字符串中空格的方法

java 基于java中空格数的字符串的字数。

Android String.xml文件中空格字符的输入

android string中空格符号问题

Java中去除字符串中空格的方法