java中空串 “”!=null..字符串要用equals判等

发布时间:2024-12-08 13:45

学习编程前,先了解基础数据类型如数字、字符串和布尔值 #生活知识# #科技生活# #编程学习#

最新推荐文章于 2024-05-29 11:36:26 发布

hzw.000 于 2016-01-10 22:34:43 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

自己写测试用例,区别:字符串为    空串“ ”,空对象null 。

3.2 Implement strStr()
描述
Implement strStr().
Returns a pointer to the first occurrence of needle in haystack, or null if needle is not part of haystack.

分析
暴力算法的复杂度是O(m n),代码如下。更高效的的算法有KMP 算法、Boyer-Mooer 算法和
Rabin-Karp 算法。面试中暴力算法足够了,一定要写得没有BUG。

暴力匹配
// LintCode, Implement strStr()
// 暴力解法,时间复杂度O(N*M),空间复杂度O(1)

</pre><p><pre name="code" class="java">package leetCode;

public class strstr {

public static int strStrMy(String source, String target) {

if (source == null || target == null) {

return -1;

} else if (target.equals("")) {

return 0;

}

int i = 0, j = 0;

while(i < source.length()) {

if (j < target.length() && source.charAt(i) == target.charAt(j)) {

i++;

j++;

} else if (j == target.length()) {

break;

} else {

i = i - (j - 1);

j = 0;

}

}

if (j == target.length()) {

return i - target.length();

} else {

return -1;

}

}

public static int strStr(String haystack, String needle) {

if (needle.length() == 0)

return 0;

for (int i = 0;; i++) {

for (int j = 0;; j++) {

if (j == needle.length())

return i;

else if (i + j >= haystack.length())

return -1;

else if (needle.charAt(j) != haystack.charAt(i + j))

break;

}

}

}

public static void main(String[] args) {

String source = "";

String target = "a";

System.out.println("输出结果:" + strStr(source, target));

System.out.println("输出结果--strStrMy" + strStrMy(source, target));

System.out.println("输出结果空串.equals(null) :" + "".equals(null));

}

}


网址:java中空串 “”!=null..字符串要用equals判等 https://www.yuejiaxmz.com/news/view/413460

相关内容

【Java数据结构】字符串常量池
C#中 Equals和= =的区别
string.Compare字符串比较函数中文详解以及与Equal、==的区别
String类的equals方法和==方法的比较
python 判断字符串是否相等 ==,is, in 误区。
转:mybatis if test 不为空字符串或null
Java——String类
Java解决if(!=null)臭名昭著的判空处理(Optional)
用PHP中的 == 运算符进行字符串比较
java字符串转map

随便看看