2017-01-30 51 views
-2

我需要一些幫助,如何接近一個Java程序,讓用戶分別輸入3個不同的字母,並告訴他們,如果他們是在一個字或沒有,如果是在什麼索引。這是介紹,所以它應該很可能是你的專家小菜一碟。我們沒有關於這部分的筆記,所以我真的很難過。我們知道如何做的是基本的字符串。到目前爲止我有。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)); 
    } 

}   
+5

我投票結束這個問題作爲題外話,因爲作業問題應該至少包括解決問題的嘗試。 – nhouser9

回答

1

使用方法字符串的indexOf#,如果給定的字符不是的話,該方法返回-1。

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

這會爲你做的工作,

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"); 
     } 
     } 

    }  

    } 
0

你也可以使用。載絃樂

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

注重用戶不一定只輸入一個字母。你應該考慮到這一點,並只測試輸入字符串的第一個字符。

一種可能的方法是如下:

在該代碼中,僅掃描從每inputed字符串的第一個字符(如需要)與.charAt(0)然後測試是否它被利用在所述.indexOf(letter)方法的字符串中name根據需要變化。

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)); 
    } 

}