【问题标题】:How to count the key characters?如何计算关键字符?
【发布时间】:2013-02-17 19:33:52
【问题描述】:

我有以下代码:

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

【问题讨论】:

  • a String 是一个字符数组。
  • 也许根据输入是否是您所需要的,对如何循环返回并一次又一次地提出问题进行一些研究。那将是循环中涉及的 java 关键字“for”或“do”或“while”。
  • 计数将是一个类似的问题。一种方法是从第 0 列开始搜索字符,如果找到则对其进行计数,然后循环从您找到它的列开始搜索。另一种策略是将字符串转换为 char 数组 (char[]),然后循环遍历数组检查和计数。这些是您可以通过 Google 搜索到的一些内容。

标签: java string


【解决方案1】:

对于问题 #1:

主方法顶部附近:

int count = 0;

分配user3后:

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

【讨论】:

  • 这很有帮助,谢谢。具有讽刺意味的是,我刚刚找到了一种将字符串转换为 char 的方法,但这更容易,所以谢谢
  • 大声笑我也切换到 user-user3 因为我得到一个负数
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    帮助解决问题 #3:

        int count = 0;
    
        for(char c : user.toCharArray() ){
            if ( c ==  letter.charAt(0)) count++;
        }
    
        System.out.println("Number of occurences: "+count);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多