2013-02-15 70 views
2

我有以下代码:如何计算关键字符?

import java.util.Scanner; 

public class chara{ 

    public static void main(String[]args){ 


    Scanner input = new Scanner(System.in); 

    System.out.println("Input a string"); 

    String user=input.nextLine(); 

    if(user.length()<7) 

    { 

     return; 

    } 

    else 

    { 



    } 

    System.out.println("now input a letter to be replaced"); 

    String letter = input.next(); 

    String user2 = user.replace(letter, "-"); 

    String user3 = user.replace(letter, ""); 

    System.out.println(user2); 

    System.out.println(user3); 

    } 
} 

代码需要做三件事情有一个字符串和一个字母:

  1. 替换键字母与字符串“ - ”
  2. 删除字符串的关键字母
  3. 统计关键字母出现的次数。

目前我有两个问题。我不知道如何计算字母 出现的次数,因为从技术上讲,它是一个字符串,而不是字符,我不知道如何计数 字符串。其次,我需要这样做,以便如果字符串不符合要求的长度, 只需再次询问,而不是退出程序。我试图使用getString()方法,但由于某种原因,它总是说方法未定义。

+0

一个字符串是字符数组。 – amphibient 2013-02-15 23:39:23

+0

也许会做一些研究,如何循环回来,并根据输入是否需要一次又一次地提出问题。这将是循环中涉及的java关键字“for”或“do”或“while”。 – 2013-02-15 23:47:48

+0

计数将是一个类似的问题。一种方法是从第0列开始搜索字符,如果找到则计数,循环搜索从刚刚找到它的列开始搜索。另一种策略是将字符串转换为char(char [])数组,然后循环遍历数组检查和计数。这些是你可以用Google做的一些事情。 – 2013-02-15 23:49:30

回答

1

充分的信贷给你ser1324109为他们解决问题#1,这里是你如何能够解决您的问题#2:

import java.util.Scanner; 

public class StringReader { 
    public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 
     String user1 = "", user2 = "", user3 = ""; 
     int count = 0; 
     while(user1.equals("") || user1.length() < 7) { 
      System.out.println("Input a string"); 
      user1 = input.nextLine(); 
     } 
     if(!user1.equals("")) { 
      System.out.println("now input a letter to be replaced"); 
      String letter = input.next(); 
      user2 = user1.replace(letter, "-"); 
      user3 = user1.replace(letter, ""); 
      System.out.println(user2); 
      System.out.println(user3); 
      count += (user1.length() - user3.length()); 
      System.out.println("letter was found to be present "+count+" times"); 
     } 
    } 
} 
+0

道歉良好的先生,我什至没有看到这一点。谢谢! – eflam117 2013-02-16 00:25:10

3

问题#1:

附近的主要方法的顶部:用户3被分配

int count = 0; 

后:

count += (user3.length() - user.length()); 
+0

+1我喜欢这种方式。 – 2013-02-15 23:50:05

+0

这非常有帮助,谢谢。讽刺的是,我刚刚找到了一种方法来将字符串转换为字符,但这很容易,所以谢谢 – eflam117 2013-02-15 23:57:08

+0

大声笑也切换到用户user3,因为我得到一个负数 – eflam117 2013-02-15 23:57:38

0

为了帮助问题3:

int count = 0; 

    for(char c : user.toCharArray()){ 
     if (c == letter.charAt(0)) count++; 
    } 

    System.out.println("Number of occurences: "+count);