javaunits的简单介绍

博主:adminadmin 2022-11-22 04:48:06 62

本篇文章给大家谈谈javaunits,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

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;

}

}

javaunits的简单介绍

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的信息别忘了在本站进行查找喔。

The End

发布于:2022-11-22,除非注明,否则均为首码项目网原创文章,转载请注明出处。