Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
让用户猜3个字母来猜名字的Java程序?_Java_Eclipse - Fatal编程技术网

让用户猜3个字母来猜名字的Java程序?

让用户猜3个字母来猜名字的Java程序?,java,eclipse,Java,Eclipse,我需要一些关于如何接近一个java程序的帮助,该程序允许用户分别输入3个不同的字母,并告诉他们是否在一个固定的单词中,如果是在什么索引中。这是为介绍,所以它应该最有可能是一块蛋糕,为您的专家。我们没有关于这一部分的笔记,所以我真的很困惑。我们所知道的只是基本的字符串。到目前为止我有 import java.util.Scanner; public class guessletter { public static void main(String[] args)

我需要一些关于如何接近一个java程序的帮助,该程序允许用户分别输入3个不同的字母,并告诉他们是否在一个固定的单词中,如果是在什么索引中。这是为介绍,所以它应该最有可能是一块蛋糕,为您的专家。我们没有关于这一部分的笔记,所以我真的很困惑。我们所知道的只是基本的字符串。到目前为止我有

    import java.util.Scanner;

    public class guessletter {
        public static void main(String[] args) {
            Scanner scan = new Scanner(System.in);
            String name = "carson";
            int namelength = name.length();
            System.out.println("The name is "+namelength+" charecters long");
            System.out.println("Please enter a letter to guess?");
            String letter1 = scan.nextLine();   
            System.out.println("Please enter a letter to guess?");
            String letter2 = scan.nextLine();   
            System.out.println("Please enter a letter to guess?");
            String letter3 = scan.nextLine();   
        }   
    }    
更新:忘了提到用户必须能够猜到结尾的单词,以确定他们是否正确。我想我记下了,但上面说正确的名字错了

import java.util.Scanner;

public class guessletter
{
    public static void main(String[] args) 
    {

    Scanner scan = new Scanner(System.in);
    String name = "carson";
    String name2;
    int namelength = name.length();
    System.out.println("The name is "+namelength+" charecters long");

    System.out.println("Please enter a letter to guess?");
    char letter = scan.nextLine().charAt(0);  // Gets the first character in the input  
    checkLetter(name, letter);

    System.out.println("Please enter a letter to guess?");
    letter = scan.nextLine().charAt(0);  
    checkLetter(name, letter); 

    System.out.println("Please enter a letter to guess?");
    letter = scan.nextLine().charAt(0);   
    checkLetter(name, letter);
    System.out.println("Please guess what the name is.");
    name2= scan.nextLine();
    if (name2 == name)
         System.out.println("Yes that is the name");
    else
         System.out.println("Nope, that is not the name");
    System.out.println("The name is "+name+"");

    }   

    public static void checkLetter(String name, char letter)
    {
    int indexOfLetter = name.indexOf(letter);
    if (indexOfLetter == -1)
        System.out.println("That letter isn't found in the name");
    else
        System.out.println("That Letter is in name. It is located at index " + (indexOfLetter+1));
    }

}           

使用方法String#indexOf,如果给定字符不在单词中,该方法返回-1

   String name = "carson";
   System.out.println(name.indexOf("a"));
   System.out.println(name.indexOf("z"));

这会帮你做的

import java.util.Scanner;

    public class guess
    {
        public static void main(String[] args) 
        {
      Scanner scan = new Scanner(System.in);
        String name = "carson";
        int namelength = name.length();
        int l=3;
        String letter;
        System.out.println("The name is "+namelength+" charecters long");
        while(l-->0){
        System.out.println("Please enter a letter to guess?");
         letter= scan.nextLine(); 
         if(name.indexOf(letter)!=-1){
            System.out.println("Letter found at position "+(name.indexOf(letter)+1));
         }else{
            System.out.println("Letter not found");
         }
        }

    }    

  } 

您也可以对字符串使用.contains

if(name.contains("a")){
//code
}

请注意用户不一定只输入一个字母。您应该考虑这一点,只测试输入字符串的第一个字符

一种可能的方法如下:

在这段代码中,使用
.charAt(0)
只扫描每个输入字符串(根据需要)的第一个字符,然后根据需要使用
name
变量上的
.indexOf(letter)
方法测试它是否在字符串中

import java.util.Scanner;

public class guessletter
{
    public static void main(String[] args) 
    {

    Scanner scan = new Scanner(System.in);
    String name = "carson";
    int namelength = name.length();
    System.out.println("The name is "+namelength+" charecters long");

    System.out.println("Please enter a letter to guess?");
    char letter = scan.nextLine().charAt(0);  // Gets the first character in the input  
    checkLetter(name, letter);

    System.out.println("Please enter a letter to guess?");
    letter = scan.nextLine().charAt(0);  
    checkLetter(name, letter); 

    System.out.println("Please enter a letter to guess?");
    letter = scan.nextLine().charAt(0);   
    checkLetter(name, letter);

    }   

    public static void checkLetter(String name, char letter)
    {
    int indexOfLetter = name.indexOf(letter);
    if (indexOfLetter == -1)
        System.out.prinln("Letter is not in name");
    else
        System.out.println("Letter is in name! index is " + (indexOfLetter+1));
    }

}           

我投票把这个问题作为离题题来结束,因为家庭作业问题至少应该包括解决问题的尝试。