Java 我在这段代码中遇到了问题,我在所有答案中都是肯定的

Java 我在这段代码中遇到了问题,我在所有答案中都是肯定的,java,string,Java,String,编写一个程序,当给定一个字符串s和一个字符c时,如果c 存在于s中。否则打印“否”。(您需要使用循环来完成此操作。您 只能使用字符串类型的length()和charAt()函数。) 示例: 输出应完全如下所示: >Please enter a string: >ahmet >Please enter a char: >m >yes 我试图实现它,但我不知道代码中的问题是什么。我总是说“真的”。 在我的实现中,我使用了一个可以是0或1的整数。 如果为

编写一个程序,当给定一个字符串
s
和一个字符
c
时,如果
c
存在于
s
中。否则打印“否”。(您需要使用循环来完成此操作。您 只能使用字符串类型的length()和charAt()函数。)

示例:

输出应完全如下所示:

 >Please enter a string: 
 >ahmet
 >Please enter a char: 
 >m
 >yes

我试图实现它,但我不知道代码中的问题是什么。我总是说“真的”。 在我的实现中,我使用了一个可以是0或1的整数。 如果为0,则打印false。 如果是1,我打印为真

这是我的代码:

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");
  }     
}
packagesass32;
导入java.util.Scanner;
公共课助理33
{
公共静态void main(字符串[]args)
{
扫描仪输入=新扫描仪(系统输入);
System.out.println(“给我任何字符串:”);
字符串名称=in.next();
System.out.println(“>请输入字符:”);
char c=in.next().charAt(0);
int e=0;
int t=name.length();
字符f;
字符s;

对于(int i=0;i您将字符串的所有字符与同一字符串的所有字符进行比较,因此您当然会找到匹配项并返回“yes”。您只需要一个循环

您所需要的只是:

e = 0;
for ( int i = 0 ; i <t ; i++) {    
    f = name.charAt(i);
    if (f==c) {
        e = 1;
        break;
    }
}
e=0;
对于(int i=0;i您应该尝试以下方法:

for (int i = 0; i < t; i++) {
    f = name.charAt(i);
    for (int j = 0; j < t; j++) { // Remove this loop
        s = name.charAt(j); // Remove this also
        if (s == f) { // Change this to (c==f)
            e = 1;
        }
    }
}
for(int i=0;i
试试这个:

boolean isCharFound = false;
for ( int i = 0 ; i <t ; i++) {    
    f = name.charAt(i);
    if (f==c) {
       isCharFound = true;
       break;
    }
}
boolean isCharFound=false;

对于(int i=0;我是java代码而不是C或C++)!因为E总是1!为什么你有两个循环?谢谢SOO,它正在工作,谢谢,是的,现在它正在工作,谢谢你,它工作了。
boolean isCharFound = false;
for ( int i = 0 ; i <t ; i++) {    
    f = name.charAt(i);
    if (f==c) {
       isCharFound = true;
       break;
    }
}