public Fraction (String fractionString)
{
StringTokenizer st = new StringTokenizer(fractionString, "/");
numerator = Integer.parseInt(st.nextToken());
denominator = Integer.parseInt(st.nextToken());
}
到目前为止,我有这个。如何更改此项以忽略分数中的括号?
示例:(3/4) - 如何忽略这些括号?
看着这个我就可以做到 StringTokenizer st = new StringTokenizer(fractionString,“/()”?
答案 0 :(得分:2)
忽略()+-*/
等符号的一种方法是使用StringTokenizer
的重载构造函数之一。
StringTokenizer st = new StringTokenizer(fractionString, "()", false);
第三个参数的boolean
表示标记生成器是否将给定的分隔符(在本例中为括号)放入标记本身(true
),或者在标记其余部分时跳过它们。字符串(false
)。
答案 1 :(得分:1)
您可以使用.replace(char oldChar,char newChar)
public Fraction (String fractionString)
{
fractionString = fractionString.replace("(","");
fractionString = fractionString.replace(")","");
StringTokenizer st = new StringTokenizer(fractionString, "/");
numerator = Integer.parseInt(st.nextToken());
denominator = Integer.parseInt(st.nextToken());
}
代码输出:
(3/4)
numerator: 3 denominator: 4
或者,您可以按如下方式使用.split(String regex)
:
String[] split = fractionString.split("[()/]");
numerator = Integer.parseInt(split[0]);
denominator = Integer.parseInt(split[1]);