【发布时间】:2014-11-01 08:45:25
【问题描述】:
编写一个程序,当给定一个字符串
s和一个字符c时,如果c输出'yes' 存在于s。否则打印出“否”。 (你应该使用循环来做到这一点。你 只能使用 String 类型的 length() 和 charAt() 函数。)
示例:
south u --> yes
north T --> no
输出应该是这样的:
>Please enter a string:
>ahmet
>Please enter a char:
>m
>yes
我尝试实现它,但我不知道我的代码有什么问题。我总是得到“真实”。 在我的实现中,我使用了一个可以是 0 或 1 的整数。 如果它是 0,我打印 false。 如果它是 1,我打印 true。
这是我的代码:
package ass32;
import java.util.Scanner;
public class ass33
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.println("give me any string : ");
String name = in.next();
System.out.println(">Please enter a char: ");
char c = in.next().charAt(0);
int e = 0 ;
int t = name.length();
char f ;
char s ;
for ( int i = 0 ; i <t ; i++) {
f = name.charAt(i);
for ( int j = 0 ; j <t ; j++) {
s = name.charAt(j);
if (s==f)
e = 1 ;
}
}
if (e==1 )
System.out.println("yes");
else if (e==0 )
System.out.println("no");
}
}
【问题讨论】:
-
那是 Java 代码,而不是 C 或 C++!
-
因为 e 永远是 1!为什么有两个循环?