Java 如何计算关键字符?

Java 如何计算关键字符?,java,string,Java,String,我有以下代码: 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()&l

我有以下代码:

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

  }
}
代码需要做三件事,包括一个字符串和一个字母,以及:

将字符串中的关键字母替换为- 删除字符串的键字母 计算关键字母出现的次数。 目前我有两个问题。我不知道如何计算这封信的次数 之所以出现,是因为从技术上讲,它是一个字符串而不是字符,我不知道如何计数 串。第二,我需要这样做,如果字符串不是所需的长度,那么 只需再次询问,而不是退出程序。我曾尝试使用getString方法,但出于某种原因,它总是说该方法未定义。

对于问题1:

在主方法的顶部附近:

int count = 0;
分配user3后:

count += (user3.length() - user.length());
第1期:

在主方法的顶部附近:

int count = 0;
分配user3后:

count += (user3.length() - user.length());
要帮助解决问题3:

    int count = 0;

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

    System.out.println("Number of occurences: "+count);
要帮助解决问题3:

    int count = 0;

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

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

用户1324109解决了问题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");
        }
    }
}

用户1324109解决了问题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");
        }
    }
}

一个字符串是一个字符数组。也许可以研究一下如何循环,并根据输入的内容是否是您所需要的,反复问这个问题。这将是循环中涉及的或do或while的java关键字。计数将是一个类似的问题。一种方法是从第0列开始搜索该字符,如果找到,则对其进行计数,然后循环搜索,从刚过找到该字符的列开始。另一种策略是将字符串转换为char[]数组,然后循环执行数组检查和计数。这些都是你可以在谷歌上搜索到的东西。字符串是一个字符数组。也许你可以研究一下如何循环,然后根据输入的内容是否是你需要的,反复问这个问题。这将是循环中涉及的或do或while的java关键字。计数将是一个类似的问题。一种方法是从第0列开始搜索该字符,如果找到,则对其进行计数,然后循环搜索,从刚过找到该字符的列开始。另一种策略是将字符串转换为char[]数组,然后循环执行数组检查和计数。这些都是你可以在谷歌上搜索到的东西。这非常有帮助,谢谢。具有讽刺意味的是,我刚刚找到了一种将字符串转换为字符的方法,但这更容易,所以谢谢。LOL我也切换到user-user3,因为我得到了一个负数,这非常有用,谢谢。具有讽刺意味的是,我刚刚找到了一种将字符串转换为字符的方法,但这更容易,所以谢谢你,我也切换到user-user3,因为我得到了一个负数