- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
免责声明:这是一道作业题。我正在尝试编写一个 contains(java.lang.String subString)
方法,该方法返回一个 int
值,表示主字符串中比较字符串的索引,对于一个定制的字符串类。
一些规则:
length()
返回主字符串的长度(这正是它所做的)我的代码:
public int contains(java.lang.String subString) {
this.subString = subString;
char[] arrSubStr = this.subString.toCharArray();
//Create initial fail
int index = -1;
//Make sure comparison subString is the same length or shorter than the primary string
if(arrSubStr.length > length()) {
return index;
}
//Steps to perform if initial conditions are met
else {
//Compare first character of subString to each character in primary string
for(int i = 0; i < length(); i++) {
//When a match is found...
if(arrSubStr[0] == this.content[i]) {
//...make sure that the subString is not longer than the remaining length of the primary string
if(arrSubStr.length > length() - i) {
return index;
}
//Proceed matching remainder of subString
else {
//Record the index of the beginning of the subString contained in primary string
index = i;
//Starting with second character of subString...
for(int j = 1; j < arrSubStr.length;) {
//...compare with subsequent chars of primary string,
//and if a failure of match is found, reset index to failure (-1)
if(arrSubStr[j] != this.content[j+i]) {
index = -1;
return index;
}
//If we get here, it means whole subString match found
//Return the index (=i) we set earlier
else {
return index;
}
}
}
}
}
}
return index;
}
测试结果:
主字符串:asdfg
比较字符串:donkey
结果:-1
[通过]
主字符串:asdfg
比较字符串:asdfg
结果:0
[通过]
主字符串:asdfg
比较字符串:g
结果:4
[通过]
主字符串:asasasf
比较字符串:asd
结果:0
[FAIL](应该是-1
)
主字符串:asasasf
比较字符串:asf
结果:0
[FAIL](应该是 4
)
注释反射(reflect)了代码是如何工作的。然而很明显,当它到达第二个 for
循环时,逻辑会以某种方式分解以给出上述结果。但我看不出问题所在。我可以再看看这个吗?
最佳答案
//If we get here, it means whole subString match found
//Return the index (=i) we set earlier
else {
return index;
}
不幸的是,这个假设是不正确的。如果你到达那里,这意味着两个子串的第二个字符是相同的,因为 if-else
语句只会执行一次并且两端都包含一个 return
.
既然我已经诊断出问题所在,那么解决这个问题的方法可能很简单,但我想更进一步。我们每天尝试编写代码的方式是一种可维护、可重用和可测试的代码。
这基本上意味着我们这里的函数可以很容易地分成不同的小函数,一个接一个地调用,我们可以为其编写单元测试并接收关于一组逻辑语句是否合适的快速反馈。
关于java - "Find substring in char[]"得到意想不到的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54702757/
**摘要:**下面就来给大家介绍这三个函数在字符截取时的一些用法与区别。 本文分享自华为云社区《GaussDB(DWS)中的字符截取三胞胎》,作者:我站在北方的天空下 。 在GaussDB(DWS)中
我对 JSTL 标记库前缀“fn”有疑问(Eclipse Luna 中的 webapp 开发)。 我的 taglibs.jspf 如下: 和 web.xml : *.
我正在使用转发器控件和数据绑定(bind)器将数据库中的数据显示到我的网站。示例:DataBinder.Eval(Container, "DataItem.title") 有时文字太长通常我使用 su
The second argument to substring is the index to stop at (but not include), but the second argument
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 7 年前。 Improve
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 7 年前。 Improve
假设我想返回一些 needle char 'x' 之后的所有字符,来自: $source_str = "Tuex helo babe". 通常我会这样做: if( ($x_pos = strpos($
谁能告诉我,Django 模板中是否存在 PHP 中的 substr ( http://pl2.php.net/manual/en/function.substr.php ) 之类的方法? 最佳答案
有什么区别 alert("abc".substr(0,2)); 和 alert("abc".substring(0,2)); 他们似乎都输出“ab”。 最佳答案 区别在于第二个参数。 substrin
我正在尝试编写一个函数,其中一列包含一个子字符串并且不包含另一个子字符串。 在下面的示例中,如果我的行包含“某些项目”并且不包含“开销”,我希望我的函数返回 1。 row| example strin
为什么这里 substr-rw 会切断尾随的 6? #!/usr/bin/env perl6 use v6; my $str = '123'; $str ~= '.' x 30; $str ~= '4
例子如下: a = "one two three four five six one three four seven two" m = re.search("one.*four", a) 我想要的是
来自 this question ,我们对这两个变体进行基准测试, substr( $foo, 0, 0 ) = "Hello "; substr( $foo, 0, 0, "Hello " ); 在
在我使用之前: entityManagerFactory.createQuery("select p FROM Pays p where SUBSTRING(p.libeleClient, 0,1)
substring() 和 substr() 在 MySQL 中执行时给出相同的结果。那么,它们是一样的吗?其中哪一个应该优先于另一个? 最佳答案 没有区别。阅读 manual ! 关于mysql -
在我使用之前: entityManagerFactory.createQuery("select p FROM Pays p where SUBSTRING(p.libeleClient, 0,1)
substring() 和 substr() 在 MySQL 中执行时给出相同的结果。那么,它们是一样的吗?其中哪一个应该优先于另一个? 最佳答案 没有区别。阅读 manual ! 关于mysql -
我的日期格式是这样的 2010-11-15 04:28:31 我只想选择 2010-11-15 而不是 2010-11-15 04:28:31 , 使用MYSQL查询, 从 TBL 中选择 SUBST
下面您可能会看到 xslt 代码来生成单选按钮。它适用于 Firefox 和 Opera,但不适用于 arora(使用 webkit 引擎)。简而言之,我没有尝试任何其他浏览器使用 webkit 引擎
我正在尝试向字符串中插入一个单词。为此,我使用 slice 函数,但它删除了我的空格。我还尝试了 substring 和 substr。我还查看了代码,它使用数组操作,我相信这就是问题所在。我能做什么
我是一名优秀的程序员,十分优秀!