精华内容
下载资源
问答
  • 在工作中,遇到一个问题:object对象中存在纯空格或者完全是空格字符串,这个时候的表单验证居然失去了效果,在控制台中打印出来,才发现,空格或者空格串被视为有输入,那么就需要判断这个字段是否为空或者用户输入的...

    前话
    在工作中,遇到一个问题:object对象中存在纯空格或者完全是空格的字符串,这个时候的表单验证居然失去了效果,在控制台中打印出来,才发现,空格或者空格串被视为有输入,那么就需要判断这个字段是否为空或者用户输入的是否为空格.


    正题
    一旦看到这种需要判断的,我的第一反应都是用正则表达式去匹配判断,在这里也一样.正则表达式用"\s"来匹配空格,那么出现空格或者空格串时,则说明空格应该出现至少一次

    var reg = /^\s+$/g
    

    在这里,我选用了"g"执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)

    再利用test函数进行判断,如果为true,则说明这一字符串为空格串

    reg.test(String)
    

    在这里插入图片描述

    展开全文
  • 输入一个字符串判断是否是C的合法标识符。   Input 输入数据包含多个测试实例,数据的第一行是一个整数n,表示测试实例的个数,然后是n行输入数据,每行是一个长度不超过50的字符串。   ...

     

    C语言合法标识符

     

    Problem Description

    输入一个字符串,判断其是否是C的合法标识符。

     

    Input

    输入数据包含多个测试实例,数据的第一行是一个整数n,表示测试实例的个数,然后是n行输入数据,每行是一个长度不超过50的字符串。

     

    Output

    对于每组输入数据,输出一行。如果输入数据是C的合法标识符,则输出"yes",否则,输出“no”。

     

    Sample Input

    3 12ajf

    fi8x_a

    ff ai_2

     

    Sample Output

    no

    yes

    n0

     

    代码如下:

    #include <stdio.h>
    #include <stdlib.h>
    
    int main(int argc, char *argv[])
    {
    	int n;
    	char tmp[50]; 
    	int i, j, flag, f;
    	
    	while(scanf("%d", &n) != EOF)
    	{
    		getchar();	//清除键盘缓存 读掉滞留在缓存区的回车
    		for(i=0; i<n; i++)
    		{
    			flag = 0;
    			f = 0;
    			j=0;
    			
    			scanf("%[^\n]", &tmp);/// 
    			getchar();	//清除键盘缓存 读掉滞留在缓存区的回车
    			while(tmp[j] != '\0')
    			{
    				// 合法标识符由字母或者下划线开头 
    				if(flag == 0)
    				{
    					flag = 1;
    					if(tmp[0] == '_');
    					else if(tmp[0]>='a' && tmp[0]<='z');
    					else if(tmp[0]>='A' && tmp[0]<='Z');
    					else
    					{
    						f = 1;
    						break;
    					}	
    				}	
    				else	// 标识符的其它部分可以用字母、下划线或数字(0~9)组成
    				{
    					if(tmp[j] == '_');
    					else if(tmp[j]>='a' && tmp[j]<='z');
    					else if(tmp[j]>='A' && tmp[j]<='Z');
    					else if(tmp[j]>='0' && tmp[j]<='9');
    					else
    					{
    						f = 1;
    						break;
    					}
    				}
    				j++;
    			}
    			
    			if(f == 1)
    				printf("no\n");
    			else
    				printf("yes\n");		
    		}
    	
    	}
    	return 0;
    }

     

    输入字符串中有空格得处理

    其中有个输入是ff ai_2,对于输入得字符串包含空格我查资料百度找到了这样的处理方法:


    C语言中scanf()函数提供的“%[]”格式串可以用来进行多个字符的输入,并对结束符进行自定义。 对于%[]还可以用^+任意字符(包括 eof)来结束字符串的输入,如%[^EOF]就是直到有EOF 输入,字符串才中止。参考代码:

    
    
    #include <stdio.h>
    void main()
    {
        char str[100];
     
        scanf("%[^\n]",str);//直到输入回车键,读取才结束,当然不能超过a定义的大小,否则会出错。此命令与gets(str)效果一样。
        printf("%s\n",str);
    }

     

    展开全文
  • 题解分析代码实现实现一个函数用来判断字符串是否表示数值(包括整数和小数)。题解分析一个标识数字的字符串可能包括以下字符类型:空格;数组:0~9;正负号小数点幂符号:e/E;为了解决此类问题,需要使用有限状态...

    题解分析代码实现

    实现一个函数用来判断字符串是否表示数值(包括整数和小数)。

    题解分析

    一个标识数字的字符串可能包括以下字符类型:

    • 空格;

    • 数组:0~9;

    • 正负号

    • 小数点

    • 幂符号:e/E;

    为了解决此类问题,需要使用有限状态自动机,字符串有如下状态:

    • 0:开始的空格;

    • 1:幂符号前的正负号;

    • 2:小数点前的数字;

    • 3:小数点、小数点后的数字;

    • 4:小数点前为空格时:小数点、小数点后的数字;

    • 5:幂符号;

    • 6:幂符号后的正负号;

    • 7:幂符号后的数字;

    • 8:结尾的空格;
      合法的结束状态有:2、3、7、8。

    状态转移如下图所示:

    cc551a4305d6c0c3466130d9fabfa4f7.png

    states

    复杂度分析:

    • 时间:需要遍历整个字符串的长度,且状态转移为O(1),所以为O(N);

    • 空间:只需常数额外空间,所以为O(1);

    代码实现

    状态使用字典列表表示,具体实现为:

    func isNumber(strNum string) bool {
        state := []map[byte]int{
            {' ':0's':1'd':2'.':4},    // 0: start with 'blank'
            {'d':2'.':4},                  // 1: 'sign' before e
            {'d':2'.':3'e':5' ':8},    // 2: 'digit' before '.'
            {'d':3'e':5' ':8},           // 3: 'digit' after '.'
            {'d':3},                         // 4: 'digit' after '.'(‘blank’ before 'dot')
            {'s':6'd':7},                  // 5: 'e'
            {'d':7},                         // 6: 'sign' after 'e'
            {'d':7' ':8},                  // 7: 'digit' after e
            {' ':8},                         // 8: end with 'blank'
        }

        index := 0
        var key byte
        for _,ch := range strNum {
            if ch>='0' && ch <= '9'{
                key = 'd'
            }else {
                switch ch {
                case '+''-':
                    key = 's'
                case 'e''E':
                    key = 'e'
                case '.'' ':
                    key = byte(ch)
                default:
                    key = '?'
                }
            }

            if _,ok:=state[index][key]; !ok{
                return false
            }
            index = state[index][key]
        }

        switch index {
        case 2,3,7,8:
            return true
        default:
            return false
        }
    }
    展开全文
  • 判断输入字符串s是否相等,浏览器输入的字符串不能有空格,所以必须s.trim()判断是否有空. String s; if (!"".equals(s.trim()) &amp;&amp; null != s) { i = Integer.parseInt(s);//强制...

    判断输入的字符串s是否相等,浏览器输入的字符串不能有空格,所以必须s.trim()判断是否有空.

    String  s; 
    if (!"".equals(s.trim()) && null != s) {
       i = Integer.parseInt(s);//强制转换int类型
    }
    

    //判断list中是否有数据,必须判断userlist中不为null,不然会报空指针异常.

     if (null != userList && userList.size() > 0) {
                return  false;
            }else{
                return true;
            }
    

    处理字符串的工具类
    导入依赖

    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-lang3</artifactId>
      <version>3.4</version>
    </dependency>
    

    运用工具类判断字符串是否为空

    int pageNum = 1;
            int pageSize = 10;
            if (StringUtils.isNoneBlank(strPageNum)) {
                pageNum = Integer.valueOf(strPageNum);
            }
            if (StringUtils.isNotBlank(strPageSize)) {
                pageSize = Integer.valueOf(strPageSize);
            }
    
    展开全文
  • //第一种 用正则 有空格也是返回false static string Regn(string input) { Regex reg = new Regex("^[1-9]\\d*$"); return reg.Match(input).Value ;//返回值可以是bool,可以用isMatch. } //...
  • 所以Javac++ 想让你帮忙,给你安全数值和一串字符串,并让你判断这个字符串是否是安全的? Input 输入有多组case,首先是一个数字n表示n组数据,然后每一组数据是一个数值m(integer),和一串字符串没有...
  • //要求输入一个匹配模式(简单的以字符来写), 比如 aabb, 来判断字符串是否符合该模式, 举个例子: //1. pattern = “abba”, str=“北京 杭州 杭州 北京” 返回 ture //2. pattern = “aabb”, str=“北京 ...
  • 题目:连续输入字符串,请按...注意:gets()和scanf()的区别在于输入的字符串是否中间有空格;对于前者,只有遇到”\n”时才停止输入,而对于后者,出现”\n”或空格都停止输入。 /* 华为在线编程题目:连续输入字...
  • import java.util.Scanner...从键盘接收两个字符串a和b,请你判断字符串a是否包含字符串b,是的话输出“Yes”, 否则输出“No”。多组测试用例,每个测试用例占一行,两个字符串之间用空格隔开。 例如:输入 Jav...
  • 注:本文使用的是VMware Workstation 15 Player 1.使用Vi/Vim命令创建.sh文件并编写内容 ...法1:使用“ = ”进行对比,注意字符串要与“=”之间留 空格 注意:若无空格,则是用于赋值 #!/bin/bash :...
  • 所以Javac++ 想让你帮忙,给你安全数值和一串字符串,并让你判断这个字符串是否是安全的? Input 输入有多组case,首先是一个数字n表示n组数据,然后每一组数据是一个数值m(integer),和一串字符串没有...
  • 输入两个字符串 s 和 t,判断 t 是否是 s 的子序列。注意,子序列不要求在原字符串中是连续的,例如串 abc,它的子序列就 {空串, a, b, c, ab, ac, bc, abc} 8 种。 输入描述 每个输入包含一个测试用例。每个测试...
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼今天遇到的字符串处理的问题,记录一下方便使用str1 = input('请输入一个字符:')#初始化字符、数字、空格、特殊字符的计数lowercase = 0uppercase = 0number = 0space =...
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼今天遇到的字符串处理的问题,记录一下方便使用str1 = input('请输入一个字符:')#初始化字符、数字、空格、特殊字符的计数lowercase = 0uppercase = 0number = 0space =...
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼今天遇到的字符串处理的问题,记录一下方便使用str1 = input('请输入一个字符:')#初始化字符、数字、空格、特殊字符的计数lowercase = 0uppercase = 0number = 0space =...
  • 输入一串字符串,统计单词的个数

    千次阅读 2018-08-08 19:29:21
    输入一串字符串,输出其中多少个单词,例如:I am a boy,输出4 方法一: 解题思路: 1、创建一个字符类型的数组,将输入的字符保存在字符数组中,每次从字符数组中读取一个字节,判断是否空格,如果遇到...
  • 分量内部不能有空格比如:username=chen中不能有空格,分量间可以有任意多的空格。 (1)请从字符串中提取用户名,密码和日期,并分别打印,比如: String name=“chen” String passwd=“12345” String datetime...
  • 题目 本题的基本要求非常简单:给定 N 个实数,计算它们的平均值。但复杂的是有些输入数据可能是非法的。...随后一行给出 N 个实数,数字间以一个空格分隔。 输出格式: 对每个非法输入,在一行中输出 ERRO...
  • 题目描述 ...针对每组输入测试数据,输出为一行,一个字符串(“Login Success!”或“Login Fail!”)。 解答 C语言字符数组实现 #include <stdio.h> #include <string.h> int main() {
  • 字符串相等判断

    千次阅读 2014-04-07 21:03:05
    判断两个由大小写字母和空格组成的字符串在忽略大小写和压缩掉空格是否相等 输入 第1行是测试数据的组数n,每组测试数据占2行,第1行是第一个字符串,第2行是第二个字符串。每组测试数据之间一个空行,每...
  • 苹果Mac OS X操作系统下,隐藏文件是否显示很多种设置方法,最简单的要算在Mac终端输入命令。显示/隐藏Mac隐藏文件命令如下(注意其中的空格并且区分大小写):显示Mac隐藏文件的命令:defaults write ...
  • 现在呢,就是让你判断输入字符串是否是回文串。 输入 多组输入,每行输入一串字符,保证字符串长度不会大于 100000,字符串由大小写英文字母和空格组成,以字符串“2013”作为结束标志。 输出 每行输出一个字符...
  • 现在呢,就是让你判断输入字符串是否是回文串。 Input 多组输入,每行输入一串字符,保证字符串长度不会大于 100000,字符串由大小写英文字母和空格组成,以字符串“2013”作为结束标志。 Output 每行输出一个...
  • scanf虽然也能输入字符串,但是遇到空格就停止了。 解决方法: 目的:输入的字符串可以有空格,且,会检测是否溢出,如果溢出,将其截断。 也可以设置你想要获取的字符个数,将超出此范围的字符截断...
  • 1,键盘中输入字符串是否考虑含有换行符,如果换行符,则不能ch!=’\n’来判断换行。而应该使用ch!=EOF,EOF对应键盘上的ctrl+Z。但今天遇到的情况是需要按两次ctrl+Z才能继续运行程序,应该是先换个行,再ctrl+Z...
  • 字符串两个空格要特殊处理,如果当前字符是空格, 用布尔型flag判断上一个字符是否空格,以此决定当前 是否需要换行 #include&lt;bits/stdc++.h&gt; using namespace std; int main() { int n; cin...
  • 又见回文 字符串

    2019-09-30 11:01:12
    现在呢,就是让你判断输入字符串是否是回文串。 输入 多组输入,每行输入一串字符,保证字符串长度不会大于100000,字符串由大小写英文字母和空格组成,以字符串“2013”作为结束标志。 输出 每行...

空空如也

空空如也

1 2 3 4 5 ... 18
收藏数 350
精华内容 140
关键字:

判断输入字符串是否有空格