华为机试题: 用小数形式输出指定符号出现的频率(java)

时间:2021-03-14 18:49:31

描述: 

描述:写出一个程序,输出基准字符串中统计指定字符出现的频率

     字符串仅包括英文大小写字母和空格、逗号、点号

    小数点后保留2位有效数字,第三位四舍五入

 

举例:

输入:wo shi, yi zhi.xiao xiao niao, ‘ ’(空格)

输出:0.17

 

接口说明:

/*
 功能: 输入的基准字符串中统计指定字符出现的频率
       字符串仅包括英文大小写字母和空格、逗号、点号
    小数点后保留2位有效数字,第三位四舍五入

 输入: String pString  输入的基准字符串
   char c 指定的字符
 
 返回: 输出指定字符出现的频率
 */

 public static float getRateFromString(String pString, char c)
 {
  return 0; 
 }

 

 


package huawei;
import java.math.BigDecimal;;

public final class Demo {


/*
功能: 输入的基准字符串中统计指定字符出现的频率
字符串仅包括英文大小写字母和空格、逗号、点号
小数点后保留2位有效数字,第三位四舍五入

输入: String pString 输入的基准字符串
char c 指定的字符

返回: 输出指定字符出现的频率
*/

public static float getRateFromString(String pString, char c)
{
/*求出c的个数*/
int count = 0;
for(int i = 0; i < pString.length(); i++)
{
if (pString.charAt(i) == c)
{
count++;
}
}

BigDecimal b = new BigDecimal((float) count / pString.length());
float f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue();

return f1;
}

}