javaunits的简单介绍
本篇文章给大家谈谈javaunits,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java swing单位换算问题,加急~~~~~~~
- 2、Java里使用Lucene框架,com.lucene.units这个包是Lucene哪个版本的?
- 3、用JAVA如何取1831的个位数,十位数,百位数,千位数,的数值
- 4、JAVA的一个面试题?谁帮我解决下?
java swing单位换算问题,加急~~~~~~~
import java.math.BigDecimal;
import java.text.DecimalFormat;
public class Test {
public static void main(String[] args) {
// System.out.println(toProperUnit("1thz","hz"));
// System.out.println(toProperUnit("1mhz","khz"));
// System.out.println(toProperUnit("2.01ghz","khz"));
// System.out.println(toProperUnit("1003hz","khz"));
/*output:
1000000000000Hz
1000KHz
2010000KHz
1.003KHz
* */
// printAllSub("0.9ghz");
// printAllPre("900000hz");
/*output:
0.9ghz - MHz: 900MHz
0.9ghz - KHz: 900000KHz
0.9ghz - Hz: 900000000Hz
900000hz - KHz: 900KHz
900000hz - MHz: 0.9MHz
900000hz - GHz: 0.0009GHz
900000hz - THz: 0.0000009THz
*/
System.out.println(autoUnit("0.9mhz"));
System.out.println(autoUnit("0.09mhz"));
System.out.println(autoUnit("0.009mhz"));
System.out.println(autoUnit("0.0009mhz"));
System.out.println(autoUnit("0.00009mhz"));
System.out.println(autoUnit("0.000009mhz"));
/*
output:
900KHz
90KHz
9KHz
900Hz
90Hz
9Hz
*/
}
private static final DecimalFormat nf = new DecimalFormat();
private static final String[] units = {"THz","GHz","MHz","KHz","Hz",};
private static final BigDecimal kk = new BigDecimal("1000");
private static final BigDecimal ks = new BigDecimal("0.001");
private static final String allChars = "[^tgmkhzTGMKHZ]";
static{
nf.setMaximumFractionDigits(units.length*3);
nf.setGroupingUsed(false);
}
// public static void printAllSub(String in){
// String u = in.replaceAll(allChars,"");
// int index = findUnitIndex(u);
// if(index0){
// System.out.println("Can not found proper unit in units array."+in);
// return;
// }
// for(int i=index+1; iunits.length; i++){
// System.out.printf("%s - %s: %s%n",in,units[i],toProperUnit(in,units[i]));
// }
// }
// public static void printAllPre(String in){
// String u = in.replaceAll(allChars,"");
// int index = findUnitIndex(u);
// if(index0){
// System.out.println("Can not found proper unit in units array."+in);
// return;
// }
// for(int i=0; iindex; i++){
// System.out.printf("%s - %s: %s%n",in,units[index-i-1],toProperUnit(in,units[index-i-1]));
// }
// }
public static String autoUnit(String in){
String u = in.replaceAll(allChars,"");
int index = findUnitIndex(u);
if(index0)
return in;
BigDecimal bd=null;
try{
bd = new BigDecimal(in.replaceAll("[^\\.0-9]",""));
while(bd.remainder(BigDecimal.ONE).compareTo(BigDecimal.ZERO)0 indexunits.length-1){
bd=bd.multiply(kk);
++index;
}
return nf.format(bd)+units[index];
}catch(Exception e){}
return in;
}
// public static String toProperUnit(String in,String unit){
// String u = in.replaceAll(allChars,"");
// int index = findUnitIndex(u);
// int dest = findUnitIndex(unit);
// if(index0){
// return in;
// }
//
// BigDecimal bd=null;
// try{
// bd = new BigDecimal(in.replaceAll("[^\\.0-9]",""));
// }catch(Exception e){}
// if(bd==null)
// return in;
// boolean less = indexdest;
// for(int i=0; iMath.abs(index-dest); i++){
// bd=bd.multiply(less?kk:ks);
// }
//
// return nf.format(bd)+units[dest];
// }
private static int findUnitIndex(String u) {
for(int i=0; iunits.length; i++)
if(units[i].equalsIgnoreCase(u))
return i;
return -1;
}
}
Java里使用Lucene框架,com.lucene.units这个包是Lucene哪个版本的?
用maven加个
!-- --
dependency
groupIdorg.apache.lucene/groupId
artifactIdlucene-core/artifactId
version4.1.0/version
/dependency
用JAVA如何取1831的个位数,十位数,百位数,千位数,的数值
个位数=1831%10
十位数=183%10
百位数=18%10
千位数=1%10
int i;
i = System.in.read(); //实际上要捕获异常
int units,tens,hundreds,thousands;
units = i%10;
tens = (i/10)%10;
hundreads = (i/100)%10;
thousands =(1/1000)%10;
然后再用System.out.print();函数输出结果就好
JAVA的一个面试题?谁帮我解决下?
public class MoneyUtil {
public static String[] chineseDigits = new String[] { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
/**
* 把金额转换为汉字表示的数量,小数点后四舍五入保留两位
* @param amount
* @return
*/
public static String amountToChinese(double amount) {
if(amount 99999999999999.99 || amount -99999999999999.99)
throw new IllegalArgumentException("参数值超出允许范围 (-99999999999999.99 ~ 99999999999999.99)!");
boolean negative = false;
if(amount 0) {
negative = true;
amount = amount * (-1);
}
long temp = Math.round(amount * 100);
int numFen = (int)(temp % 10); // 分
temp = temp / 10;
int numJiao = (int)(temp % 10); //角
temp = temp / 10;
//temp 目前是金额的整数部分
int[] parts = new int[20]; // 其中的元素是把原来金额整数部分分割为值在 0~9999 之间的数的各个部分
int numParts = 0; // 记录把原来金额整数部分分割为了几个部分(每部分都在 0~9999 之间)
for(int i=0; ; i++) {
if(temp ==0)
break;
int part = (int)(temp % 10000);
parts[i] = part;
numParts ++;
temp = temp / 10000;
}
boolean beforeWanIsZero = true; // 标志“万”下面一级是不是 0
String chineseStr = "";
for(int i=0; inumParts; i++) {
String partChinese = partTranslate(parts[i]);
if(i % 2 == 0) {
if("".equals(partChinese))
beforeWanIsZero = true;
else
beforeWanIsZero = false;
}
if(i != 0) {
if(i % 2 == 0)
chineseStr = "亿" + chineseStr;
else {
if("".equals(partChinese) !beforeWanIsZero) // 如果“万”对应的 part 为 0,而“万”下面一级不为 0,则不加“万”,而加“零”
chineseStr = "零" + chineseStr;
else {
if(parts[i-1] 1000 parts[i-1] 0) // 如果"万"的部分不为 0, 而"万"前面的部分小于 1000 大于 0, 则万后面应该跟“零”
chineseStr = "零" + chineseStr;
chineseStr = "万" + chineseStr;
}
}
}
chineseStr = partChinese + chineseStr;
}
if("".equals(chineseStr)) // 整数部分为 0, 则表达为"零元"
chineseStr = chineseDigits[0];
else if(negative) // 整数部分不为 0, 并且原金额为负数
chineseStr = "负" + chineseStr;
chineseStr = chineseStr + "元";
if(numFen == 0 numJiao == 0) {
chineseStr = chineseStr + "整";
}
else if(numFen == 0) { // 0 分,角数不为 0
chineseStr = chineseStr + chineseDigits[numJiao] + "角";
}
else { // “分”数不为 0
if(numJiao == 0)
chineseStr = chineseStr + "零" + chineseDigits[numFen] + "分";
else
chineseStr = chineseStr + chineseDigits[numJiao] + "角" + chineseDigits[numFen] + "分";
}
return chineseStr;
}
/**
* 把一个 0~9999 之间的整数转换为汉字的字符串,如果是 0 则返回 ""
* @param amountPart
* @return
*/
private static String partTranslate(int amountPart) {
if(amountPart 0 || amountPart 10000) {
throw new IllegalArgumentException("参数必须是大于等于 0,小于 10000 的整数!");
}
String[] units = new String[] {"", "拾", "佰", "仟"};
int temp = amountPart;
String amountStr = new Integer(amountPart).toString();
int amountStrLength = amountStr.length();
boolean lastIsZero = true; //在从低位往高位循环时,记录上一位数字是不是 0
String chineseStr = "";
for(int i=0; iamountStrLength; i++) {
if(temp == 0) // 高位已无数据
break;
int digit = temp % 10;
if(digit == 0) { // 取到的数字为 0
if(!lastIsZero) //前一个数字不是 0,则在当前汉字串前加“零”字;
chineseStr = "零" + chineseStr;
lastIsZero = true;
}
else { // 取到的数字不是 0
chineseStr = chineseDigits[digit] + units[i] + chineseStr;
lastIsZero = false;
}
temp = temp / 10;
}
return chineseStr;
}
public static void main(String[] args) {
if(args.length == 0) {
System.out.println("转换演示:");
System.out.println("-------------------------");
System.out.println("25000000000005.999: " + amountToChinese(25000000000005.999));
System.out.println("45689263.626: " + amountToChinese(45689263.626));
System.out.println("0.69457: " + amountToChinese(0.69457));
System.out.println("253.0: " + amountToChinese(253.0));
System.out.println("0: " + amountToChinese(0));
System.out.println("-------------------------");
//System.out.println(Long.MAX_VALUE);
//System.out.println(Long.MIN_VALUE);
}
else {
System.out.println("转换结果:");
System.out.println(args[0] + ": " + amountToChinese(Double.parseDouble(args[0])));
}
}
}
javaunits的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、javaunits的信息别忘了在本站进行查找喔。
发布于:2022-11-22,除非注明,否则均为
原创文章,转载请注明出处。