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() 方法,但由于某种原因,它总是说该方法未定义。

4

3 回答 3

3

对于问题 #1:

靠近 main 方法的顶部:

int count = 0;

分配 user3 后:

count += (user3.length() - user.length());
于 2013-02-15T23:48:38.470 回答
1

充分感谢 user1324109 对问题 #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");
        }
    }
}
于 2013-02-16T00:02:27.530 回答
0

为了帮助解决问题 #3:

    int count = 0;

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

    System.out.println("Number of occurences: "+count);
于 2013-02-16T00:01:01.803 回答