精华内容
下载资源
问答
  • jsp中nul和空字符串判断

    万次阅读 2013-12-11 17:05:40
    一、在EL表达中使用empty, ${not empty ...=null&&#request.logisticsDetailList.size>0">如果是字符串可以 !=null&&#request.username!=''">单引号 这样也可以使用取到相同效果。

    一、在EL表达中使用empty,

    <c:if test="${not empty logisticsDetailList}">
    <c:forEach items="${logisticsDetailList}" var="list">
    <tr>
       <td align="center" >
        ${list.time}&nbsp;
       </td>
       <td align="left">
    <span style="display:block;" title="${list.contenxt}">${list.contenxt}</span>
       </td>
    </tr>
    </c:forEach>
    </c:if>
    <c:if test="${empty logisticsDetailList}">
    <tr>
       <td align="center" colspan="2">
        <span style="color: #003688;font-weight:bold;font-size:16px">暂无物流信息!</span>
       </td>
    </tr>
    </c:if>

    1. <c:if test="${! empty key}">${key}</c:if>   或者<c:if test="${not empty key}">
    2. <c:if test="${empty key}">所有</c:if>   
    3. 当key不为空时输出key的值。当key为空时,输出“所有”   
    4. 规则:   
    5. 1若key为null时,返回true  
    6. 2若key为空String时,返回true  
    7. 3若key为空Array时,返回true  
    8. 4若key为空Map时,返回true  
    9. 5若key为空Collection时,返回true  
    10. 6否则,返回false  
     二、struts2标签对null和空字符串判断 
    

    <s:if test="#request.logisticsDetailList!=null&&#request.logisticsDetailList.size>0">  

    也可以这样使用:<s:if test="#request.logisticsDetailList!=null&&!#request.logisticsDetailList.isEmpty()"> 
    <c:forEach items="${logisticsDetailList}" var="list">
    <tr>
       <td align="center" >
        ${list.time}&nbsp;
       </td>
       <td align="left">
    <span style="display:block;" title="${list.contenxt}">${list.contenxt}</span>
       </td>
    </tr>
    </c:forEach>
    </s:if>

    <s:if test="#request.logisticsDetailList!=null&&#request.logisticsDetailList.size>0">如果是字符串可以  <s:if test="#request.username!=null&&#request.username!=''">单引号

    这样也可以使用取到相同效果。


    展开全文
  • \xnn 匹配中ASCII代码十六进制代码为nn的字符。[\x00-\x7F] 匹配ASCII值从0-127的字符。0-127表示单字节字符,也就是:数字,英文字符,半角符号,以及某些控制字符。   正则示例: &lt;?php $test_str...

    \xnn 匹配中ASCII代码十六进制代码为nn的字符。
    [\x00-\x7F] 匹配ASCII值从0-127的字符。
    0-127表示单字节字符,也就是:数字,英文字符,半角符号,以及某些控制字符。

     

    正则示例:

    <?php
    
    $test_str = 'a'.chr(0).'bcdefj'.chr(0).'h';
    
    //ASCII码中十进制 0 对应 十六进制 00
    $hex_str = '\x00';
    
    $pattern =  sprintf('/a%s[0-9a-zA-Z]{6}%sh/',$hex_str,$hex_str);
    
    preg_match_all($pattern,$test_str,$output); 
    var_dump($output);
    
    
    $test_str = 'a'.chr(31).'bcdefj'.chr(31).'h';
    
    //ASCII码中十进制 31 对应 十六进制 1F
    $hex_str = '\x1F';
    
    $pattern =  sprintf('/a%s[0-9a-zA-Z]{6}%sh/',$hex_str,$hex_str);
    
    preg_match_all($pattern,$test_str,$output); 
    var_dump($output);

     

    展开全文
  • null 空 就好像一个杯子里面式真空的."" 字符串空 就像杯子在那里 但是里面有空气]而 0 是指一个数值类型的变量 在初始化后 并没有赋值 则这个数值型变量就的默认值是 00或者 是一个被赋值的变量 转载于:...

    null 空 就好像一个杯子里面式真空的.
    "" 字符串空 就像杯子在那里 但是里面有空气]
    而 0 是指一个数值类型的变量 在初始化后 并没有赋值 则这个数值型变量就的默认值是 0
    0或者 是一个被赋值的变量

    转载于:https://www.cnblogs.com/thomasbc/p/6687425.html

    展开全文
  • 字符串 - NUL - NULL - ‘\0’ - 判断字符串 s2 是否包含字符串 s1 的排列 1. 字符串常量 (string literal) 许多人对 C 语言不存在字符串类型感到奇怪,不过 C 语言提供了字符串常量。C 语言存在字符串的概念:它...

    字符串 - NUL - NULL - ‘\0’ - 判断字符串 s2 是否包含字符串 s1 的排列

    1. 字符串常量 (string literal)

    许多人对 C 语言不存在字符串类型感到奇怪,不过 C 语言提供了字符串常量。C 语言存在字符串的概念:它就是一串以 NUL 字节结尾的零个或多个字符。字符串通常存储在字符数组中,这也是 C 语言没有显式的字符串类型的原因。由于 NUL 字节是用于终结字符串的,所以在字符串内部不能有 NUL 字节。在一般情况下,这个限制并不会造成问题。之所以选择 NUL 作为字符串的终止符,是因为它不是一个可打印的字符。

    字符串常量的书写方式是用一对双引号包围一串字符,如下所示:

    “Hello”
    “\aWarning!\a”
    “Line 1\nLine2”
    “”
    

    字符串常量 (不像字符常量) 可以是空的。即使是空字符串,依然存在作为终止符的 NUL 宇节。

    literal [ˈlɪtərəl]:adj. 文字的,逐字的,无夸张的
    string [strɪŋ]:n. 线,弦,细绳,一串,一行
    

    K&R C:
    在字符串常量的存储形式中,所有的字符和 NUL 终止符都存储于内存的某个位置。K&R C 并没有提及一个字符串常量中的字符是否可以被程序修改,但它清楚地表明具有相同的值的不同字符串常量在内存中是分开存储的。因此,许多编译器都允许程序修改字符串常量。

    ANSIC:
    ANSIC 则声明如果对一个字符串常量进行修改,其效果是未定义的。它也允许编译器把一个字符串常量存储于一个地方,即使它在程序中多次出现。这就使得修改字符串常量变得极为危险,因为对一个常量进行修改可能殃及程序中其他字符串常量。许多 ANSI 编译器不允许修改字符串常量,或者提供编译时选项,让你自行选择是否允许修改字符串常量。在实践中,请尽量避免这样做。如果你需要修改字符串,请把它存储于数组中。

    我之所以把字符串常量和指针放在一起讨论,是因为在程序中使用字符串常量会生成一个指向字符的常量指针当一个字符串常量出现于一个表达式中时,表达式所使用的值就是这些字符所存储的地址,而不是这些字符本身。因此,你可以把字符串常量赋值给一个指向字符的指针,后者指向这些字符所存储的地址。但是,你不能把字符串常量赋值给一个字符数组,因为字符串常量的直接值是一个指针,而不是这些字符本身。

    如果你觉得不能赋值或复制字符串显得不方便,你应该知道标准 C 函数库包含了一组函数,它们就用于操纵字符串,包括对字符串进行复制、连接、比较以及计算字符串长度和在字符串中查找特定字符的函数。

    NULL 指针,它可以用零值来表示。

    gets 函数从标准输入读取一行文本并把它存储于作为参数传递给它的数组中。一行输入由一串字符组成,以一个换行符 (newline) 结尾。gets 函数丢弃换行符,并在该行的末尾存储一个 NUL 字节 (一个 NUL 字节是指字节模式为全 0 的字节,类似 '\0' 这样的字符常量)。然后,gets 函数返回一个非 NULL 值,表示该行己被成功读取。gets 函数被调用但事实上不存在输入行时,它就返回 NULL 值,表示它到达了输入的末尾 (文件尾)。

    在 C 程序中,处理字符串是常见的任务之二。尽管 C 语言并不存在 string 数据类型,但在整个语言中,存在一项约定:字符串就是一串以 NUL 字节结尾的字符。NUL 是作为字符串终止符,它本身并不被看作是字符串的一部分。字符串常量 (string literal) 就是源程序中被双引号括起来的一串字符。例如,字符串常量:

    “Hello”
    

    在内存中占据 6 个字节的空间,按顺序分别是 HelloNUL

    2. 字符串基础

    字符串是一种重要的数据类型,但是 C 语言并没有显式的字符串数据类型,因为字符串以字符串常量的形式出现或者存储于字符数组中。字符串常量很适用于那些程序不会对它们进行修改的字符串。所有其他字符串都必须存储于宇符数组或动态分配的内存中。

    字符串就是一串零个或多个字符,并且以一个位模式为全 0NUL 字节结尾。因此,字符串所包含的字符内部不能出现 NUL 字节。这个限制很少会引起问题,因为 NUL 字节并不存在与它相关联的可打印字符,这也是它被选为终止符的原因。NUL 字节是字符串的终止符,但它本身并不是字符串的一部分,所以字符串的长度并不包括 NUL 字节。

    头文件 string.h 包含了使用字符串函数所需的原型和声明。尽管并非必需,但在程序中包含这个头文件确实是个好主意,因为有了它所包含的原型,编译器可以更好地为你的程序执行错误检查。

    NUL 是 ASCII 字符集中 ’\0’ 字符的名字,它的字节模式为全 0。NULL 指一个其值为 0 的指针。它们都是整型值,其值也相同,所以它们可以互换使用。然而,你还是应该使用适当的常量,因为它能告诉阅读程序的人不仅使用。这个值,而且告诉他使用这个值的目的。

    符号 NULL 在头文件 stdio.h 中定义。另一方面,并不存在预定义的符号 NUL,所以如果你想使用它而不是字符常量 ’\0’,你必须自行定义。

    3. 字符串 - NUL - NULL

    空指针 (NULL) 和 ASCll 码零 (NUL) 两个术语不可互换。

    • NUL 用于结束一个 ACSll 字符串,ACSll 字符中零的位模式被称为 NUL
    • NULL 用于表示什么也不指向 (空指针),表示哪里也不指向的特殊的指针值则是 NULL

    4. 判断字符串 s2 是否包含字符串 s1 的排列

    给定两个字符串 s1s2,写一个函数来判断 s2 是否包含 s1 的排列。第一个字符串的排列之一是第二个字符串的子串。

    4.1 解决方法:滑动窗口 + 直方图

    判断字符串 s2 是否包含字符串 s1 的排列,字符串 s1 中所有的元素可以随机组合。通过比较 s1 长度的 s2 子串与 s1 中各种字符个数是否相同来进行判断 (只要各种元素个数相同,s1 就可以组合成当前 s2 子串的形式)。

    滑动的时候,将 s2 当前窗口宽度后面的一个字符加到统计数组里面 (计数加一),将窗口左边的第一个字符在统计数组结果里面去掉 (计数减一)。

    示例1:

    输入:s1 = "ab" s2 = "eidbaooo"
    输出:true
    解释:s2 包含 s1 的排列之一 ("ba").
    

    示例2:

    输入:s1= "ab" s2 = "eidboaoo"
    输出:false
    

    注意:

    1. 输入的字符串只包含小写字母。 (小写字母 共计 26 个。)
    2. 两个字符串的长度都在 [1, 10,000] 之间。
    3. 大循环中少比较一次,注意后续补上。

    在这里插入图片描述

    bool checkInclusion(char * s1, char * s2)
    {
    	char *ps1 = s1;
    	char *ps2 = s2;
    	int len_s1 = 0;
    	int len_s2 = 0;
    	int head = 0;
    	int tail = 0;
    	int idx = 0;
    	int histogram_num = 26;
    	int histogram_s1[26] = { 0 };
    	int histogram_sub[26] =	{ 0 };
    
    	if ((NULL == s1) || (NULL == s2))
    	{
    		return false;
    	}
    
    	len_s1 = strlen(s1);
    	len_s2 = strlen(s2);
    
    	if (len_s1 > len_s2)
    	{
    		return false;
    	}
    
    	// histogram data
    	for (idx = 0; idx < len_s1; idx++)
    	{
    		histogram_s1[ps1[idx] - 'a']++;
    		histogram_sub[ps2[idx] - 'a']++;
    	}
    
    	for (head = 0, tail = len_s1; tail < len_s2; head++, tail++)
    	{
    		for (idx = 0; idx < histogram_num; idx++)
    		{
    			if (histogram_s1[idx] != histogram_sub[idx])
    			{
    				break;
    			}
    		}
    
    		if (idx == histogram_num)
    		{
    			return true;
    		}
    
    		histogram_sub[ps2[head] - 'a']--;
    		histogram_sub[ps2[tail] - 'a']++;
    	}
    
    	for (idx = 0; idx < histogram_num; idx++)
    	{
    		if (histogram_s1[idx] != histogram_sub[idx])
    		{
    			break;
    		}
    	}
    
    	if (idx == histogram_num)
    	{
    		return true;
    	}
    	else
    	{
    		return false;
    	}
    }
    

    在这里插入图片描述

    在这里插入图片描述

    4.2 特殊测试用例

    bool checkInclusion(char * s1, char * s2)
    {
    	char *ps1 = s1;
    	char *ps2 = s2;
    	int len_s1 = 0;
    	int len_s2 = 0;
    	int head = 0;
    	int tail = 0;
    	int idx = 0;
    	int histogram_num = 26;
    	int histogram_s1[26] = { 0 };
    	int histogram_sub[26] =	{ 0 };
    
    	if ((NULL == s1) || (NULL == s2))
    	{
    		return false;
    	}
    
    	len_s1 = strlen(s1);
    	len_s2 = strlen(s2);
    
        printf("len_s1 = %d\n", len_s1);
        printf("len_s2 = %d\n", len_s2);
    
    	if (len_s1 > len_s2)
    	{
            printf("s1 = \"\*\*\*\", s2 = \"\";");
    		return false;
    	}
    
    	// histogram data
    	for (idx = 0; idx < len_s1; idx++)
    	{
    		histogram_s1[ps1[idx] - 'a']++;
    		histogram_sub[ps2[idx] - 'a']++;
    	}
    
    	for (head = 0, tail = len_s1; tail < len_s2; head++, tail++)
    	{
    		for (idx = 0; idx < histogram_num; idx++)
    		{
    			if (histogram_s1[idx] != histogram_sub[idx])
    			{
    				break;
    			}
    		}
    
    		if (idx == histogram_num)
    		{
                printf("s1 = \"\", s2 = \"\*\*\*\";");
    			return true;
    		}
    
    		histogram_sub[ps2[head] - 'a']--;
    		histogram_sub[ps2[tail] - 'a']++;
    	}
    
    	for (idx = 0; idx < histogram_num; idx++)
    	{
    		if (histogram_s1[idx] != histogram_sub[idx])
    		{
    			break;
    		}
    	}
    
    	if (idx == histogram_num)
    	{
            printf("s1 = \"\", s2 = \"\";");
    		return true;
    	}
    	else
    	{
    		return false;
    	}
    }
    

    4.2.1 测试用例 - s1 = "yong", s2 = "";

    在这里插入图片描述

    在这里插入图片描述

    4.2.2 测试用例 - s1 = "", s2 = "qiang";

    在这里插入图片描述

    在这里插入图片描述

    4.2.3 测试用例 - s1 = "", s2 = "";

    在这里插入图片描述

    在这里插入图片描述

    展开全文
  • How to replace \0 (NUL) in the String?String b = "2012yyyy06mm"; // sth what i wantString c = "2\0\0\0012yyyy06mm";String d = c.replaceAll("\\\\0", ""); // not workString e = d.replac...
  • 其实后边还会多一个NUL字符.因为多写了个“love”字符串,而字符串会默认以'\0'结尾,而在C中 ’\0‘是一个ASCII码为0的字符,为“空操作字符”,不引起控制动作,也不是一个可以显示的字符。 下面是在windows下用...
  • java字符串中NUL域的去除

    千次阅读 2018-01-09 17:02:48
    图中红框中的NUL输出就是这些NULL域,这些NULL域影响了业务的后续处理,所以必须去除这些NUL。 研究了一下这个输出,不难发现这些NULL输出,在字符串的字节数组里很容易发现,这些NULL也是占“地儿”的。所以只需要...
  • Notepad++怎样输入字符[NUL]? 安装 Hex-Editor 插件: HexEditor插件用于在notepad++中查看16进制文件,只需要将此dll放入notepad++安装目录下plugins文件夹下,重启notepad++即可。 使用方法:可以切换到Hex模式...
  • 一、应用描述 因数据整理的业务需要,解密出来的字符串中间带有一些空字符...读取文本并替换掉NUL字符,将处理后的字符串输出到文本中。 (2)代码示例 if __name__ == '__main__': linesStrList = [] readFile = op
  • 将方法调用由String类型更改为byte类型即可,例如,调用writeChars,writeUTF之类的貌似会多处这么几个字符,换成bytes就不会
  • 关于NUL

    2019-10-03 07:40:00
    问题:正常的order by不起作用了,如下图 分析:使用notepad++打开,发现 NUL字符‘\0'作为字符串结束标志。’\0'是一个ASCII码为0的字符,从ASCII码表中可以看到ASCII码为0的字符是“空操作字符”,它不引起任何...
  • 在IBM JDK 8中, java.lang.Integer.toHexString(int)方法有时会返回以nul字符'\u0000'开头的字符串。 目前的项目在那里证明了这个问题。 重现步骤 获得IBM JDK8。我的情况是,确切的版本是 java -version java ...
  • 数字0:代表数字0,用于运算字符'0':字符,代表ASKII码中的数字0,ASKII序号48'/0'(NUL):字符,代表ASKII码中的NUL,ASKII序号0NULL:C语言定义的代表空的值本人表达如果有不清楚和不对的地方请各位大佬指正。...
  • /**************************************** * File Name : substr.c * Creat Data : 2015.1.19 * Author : ZhouYuan ****************************.../* 从src数组起始位置向后偏移start个字符的位置开始,最多复制len
  • 批处理脚本 将内部代码页切换为英文 chcp 437>nul 启用中文字符集显示 graftabl 936>nul 参考:http://blog.sina.com.cn/s/blog_96ea2f1b0100yd05.html
  • NUL和NULL

    2017-08-10 13:08:00
    1、NUL是ASCII字符集中'\0'字符的名字,它的字节模式为全0 2、NULL指一个其值为0的指针 3、它们都是整型值,其值也相同,所以可以互换使用 4、然而,你还是应该使用适当的常量,因为它能告诉阅读程序的人,不仅...
  • NUL 与 NULL

    2020-10-02 18:38:45
    1、NUL 与 NULL 在C语言中,字符串表示为...字符串最后一个字符为空字符 (’\0’),官方将其定义为 NUL ,而 NULL 是一个宏,其定义如下: #define NULL ((void*)0) //C语言的标准 #define NULL 0 //C++标准 ...
  • NULL和NUL

    2014-11-28 01:07:40
     NULL和NUL ① NULL: 定义为0或0L或(void *)0,...③ NUL: 0x00,0值字符,用于结束ASCII字符串,和'\0'类似(可以理解为别名),但是在c/c++中没有定义,如果要使用的话,需要自定义为 #define NUL '\0';
  • #include #include void copy_n( char dst[], char src[], int n ); void main() { int n,i; char dst[30],src[30]; gets(dst); scanf("%d",&n); copy_n(dst, src, n);... p
  • CREATE OR REPLACE FUNCTION ISQUARTER(MyStr DATE) RETURN VARCHAR2 IS sResult VARCHAR2(400); ...select to_char(MyStr,'yyyy') || lpad(TO_CHAR(MyStr,'Q'),2,'0') INTO sResult from dual;...
  • While strncat() does guarantee to NUL-terminate the destination, you must not count the space for the NUL in the size parameter. Most importantly, this is not the size of the destination string ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,727
精华内容 10,690
关键字:

nul是什么字符