2016-11-06 46 views
0

我的代碼應提示用戶輸入一個字符串和字符occurencies,並告訴在那裏該角色位於 例如 「歡迎」和「e」 回報 「2 ,7「Java方法,以找到一個特定字符的

我的代碼如何修復?代碼在這裏。在此先感謝(這不是家庭作業,但是如果您不想發佈解決方案,無論如何都會提示一些提示)。

import java.util.Scanner; 
public class Test { 
    public static void main(String[] args) { 
     System.out.println("Please enter a string and a character"); 
     Scanner input = new Scanner(System.in); 
     String s = input.nextLine(); 
     char ch = input.next().charAt(0); 

     System.out.println(count(ch)); 

    } 

    public static int count (String s, char a) { 
     int count = 0; 
     for (int i = 0; i < s.length(); i++) { 
      if (s.charAt(i) == a) { 
       count++; 
      } 
     } 
     return count; 

    } 
} 
+0

第一提示:如果您希望您的方法返回逗號分隔的數字列表,則應該使返回類型爲「String」,而不是「int」。一個'int'是一個單一的數字。 –

+0

正如@DavidWallace所說,你的程序打印的是int中出現的次數。如果你也想打印索引,你可以嘗試做一個int數組來存儲你發現的字符的每個索引,並用for循環打印它。 –

+0

爲什麼您將該方法命名爲count而不是find? –

回答

1

有些錯誤:

  1. 您的代碼不編譯。呼叫:的

    System.out.println(count(s, ch)); 
    

    代替

    System.out.println(count(ch)); 
    
  2. 你算出場的次數。相反,你應該保持索引。您可以使用String,或者您可以將它們添加到列表/數組,然後將其轉換爲您想要的。

    public static String count(String s, char a) { 
        String result = ""; 
        for (int i = 0; i < s.length(); i++) { 
         if (s.charAt(i) == a) { 
          result += (i+1) + ", "; 
         } 
        } 
        return result.substring(0, result.length() - 2); 
    } 
    

    我用i+1代替i,因爲索引在Java中0開始。

    我還返回了字符串result.substring(0, result.length() - 2)沒有其最後2個字符,因爲我在每個字符後添加了,

0

只是改變計數方法:

public static ArrayList<Integer> count(String s, char a) { 
     ArrayList<Integer> positions = new ArrayList<>(); 
     for (int i = 0; i < s.length(); i++) { 
      if (s.charAt(i) == a) { 
       positions.add(i+1); 
      } 
     } 
     return positions; 
    } 
1

由於的Java 8,您可以通過使用爲此流

public static String count(String s, char a) { 
    return IntStream.range(0, s.length()) 
      .filter(i -> a == s.charAt(i)).mapToObj(i -> i + "") 
      .collect(Collectors.joining(", ")); 
} 

這段代碼打印你的性格,用逗號seprated的指標。
有關的更多信息,可以在Java 8文檔中閱讀here

相關問題