下面是在
的数字中找到0的代码示例:1701有0,1711没有零。如果数字是一个数字,它将打印“不可能”。
代码的问题是,如果数字是666,那么'solve(num)'执行3次,而它应该只执行一次,如果数字是505,那么'solve num'会被执行一次,而它不应该执行,因为505中的数字为零。
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<!DOCTYPE html>
<html ng-app="app">
<head>
<script data-require="angular.js@1.5.5" data-semver="1.5.5" src="https://code.angularjs.org/1.5.5/angular.min.js"></script>
<script data-require="jquery@2.1.1" data-semver="2.1.1" src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>
<body ng-controller="demoController">
<div ng-repeat="f in testFocus">
<button class="btn btn-sm chat-option chat-option-add" ng-click="buttonClicked(f, $index)" style="padding: 0px;border-radius: 50%;">button</button>
<input ng-if="f.isShow" type="text" class="input-{{$index}}" style="color:black;" value="text" />
</div>
</body>
</html>
答案 0 :(得分:2)
如果您正在寻找一种有效的方法来检查字符串是否包含某个数字,请使用String.indexOf()(或者String.contains();但第一个提供更好的效果。)
绝对没有必要在这么低的水平上工作!与此相反的: 良好的编程是关于使用有用的抽象。您绝对希望最小化代码中的循环数,ifs,....仅仅因为5行代码...可能包含比1行代码更多的错误;特别是如果那5行是那个轮子的“手写再发明”,你可以完美地称之为一行;这保证有效。
答案 1 :(得分:2)
只需将int
转换为String
,然后像这样使用indexOf()
:
int num = 1701;
String s = String.valueOf(num);
if (s.indexOf('0') > 0){
your code
}
参考文献:
答案 2 :(得分:1)
暂停
if (.....) {
solve (num);
break;
}
更简单的方法是
private void match(int num) {
String str = String.valueOf(num);
if(str.length () <=1){
System.out.println("Not possible");
return;
}
if(str.indexOf ('0') > 0){
solve(num);
}
}
答案 3 :(得分:1)
String#contains(...)
使用String#indexOf(...)
,因此开发更好,更直观......
public static void main(String[] args) {
for (int i = 1; i < 15; i++) {
check(i);
}
}
private static void check(int i) {
System.out.println(String.valueOf(i).contains("0"));
}