package com.accp;
private int num; //分子
private int den; //分母
/**
* 构造器
* @param num
* @param den
*/
public Rational(int num, int den) {
this.num = num;
this.den = den;
}
/**
* 构造器(修剪空白)
* 例如 :传入字符串"2/3" 将其中的"2"取出作为分子 "3"作为分母
* @param s 传入字符串s
*/
public Rational(String s){
String[] tt = s.split("/");//把一个字符串撕裂,"/"为中介点
num = Integer.parseInt(tt[0].trim());//把字符串转为整数
den = Integer.parseInt(tt[1].trim());//把字符串转为整数
}
/**
* 计算分数乘法
* @param other
* @return
*/
public Rational mul(Rational other){
return new Rational(this.num * other.num ,this.den * other.den);
}
/**
* 分数化简(约分)的方法(分子和分母同时除以最大公约数)
*/
public Rational simplify(){
//取分子分母的绝对值,保存最大公约数在divisor
int divisor = gcd(Math.abs(num), Math.abs(den));
num /= divisor;//分子除以最大公约数,
den /= divisor;//分母除以最大公约数
return this;//返回当前分数Rational(除后的分数)
}
/**
* 分数的正规化(分母或分子出现负数时)
* @return 化简后的分数
*/
public Rational normalize(){
if(den < 0){
den = -den;
num = -num;
}
return this;
}
/**
* 最大公约数计算
* @param x 传入分子x
* @param y 传入分母y
* @return 返回约数i 或返回1
*/
private int gcd(int x , int y){
if(x > y){
int temp = x;
x = y;
y = temp;
}
for(int i = x; i > 1; i--){
if(x % i == 0 && y % i == 0){
return i;
}
}
return 1;
}
public String toString(){
return num + "/" + den;
}
}
//分数类
private int num; //分子
private int den; //分母
/**
* 构造器
* @param num
* @param den
*/
public Rational(int num, int den) {
this.num = num;
this.den = den;
}
/**
* 构造器(修剪空白)
* 例如 :传入字符串"2/3" 将其中的"2"取出作为分子 "3"作为分母
* @param s 传入字符串s
*/
public Rational(String s){
String[] tt = s.split("/");//把一个字符串撕裂,"/"为中介点
num = Integer.parseInt(tt[0].trim());//把字符串转为整数
den = Integer.parseInt(tt[1].trim());//把字符串转为整数
}
/**
* 计算分数乘法
* @param other
* @return
*/
public Rational mul(Rational other){
return new Rational(this.num * other.num ,this.den * other.den);
}
/**
* 分数化简(约分)的方法(分子和分母同时除以最大公约数)
*/
public Rational simplify(){
//取分子分母的绝对值,保存最大公约数在divisor
int divisor = gcd(Math.abs(num), Math.abs(den));
num /= divisor;//分子除以最大公约数,
den /= divisor;//分母除以最大公约数
return this;//返回当前分数Rational(除后的分数)
}
/**
* 分数的正规化(分母或分子出现负数时)
* @return 化简后的分数
*/
public Rational normalize(){
if(den < 0){
den = -den;
num = -num;
}
return this;
}
/**
* 最大公约数计算
* @param x 传入分子x
* @param y 传入分母y
* @return 返回约数i 或返回1
*/
private int gcd(int x , int y){
if(x > y){
int temp = x;
x = y;
y = temp;
}
for(int i = x; i > 1; i--){
if(x % i == 0 && y % i == 0){
return i;
}
}
return 1;
}
public String toString(){
return num + "/" + den;
}
}
//测试
package com.shen;
public class Test {
public static void main(String[] args){
System.out.println(StringUtil.revers("My girl!"));
String str = " you are my girl!";
char ch = 'r';
System.out.println(str + "里" + ch + "有" + StringUtil.count(str, ch) + "个");
}
}