java30位数字字符转金额

Python017

java30位数字字符转金额,第1张

java30位数字字符转金额

步骤如下

1、进行输入操作,并进行判断是否超过七位数或者输入的数为负数,或输入不合法的数。

while(true){

Scanner sc = new Scanner(System.out)

System.out.println("输入数字:")

number = sc.nextInt()

if(number >= 0 &&number <= 999999){

break

}else{

System.out.println("输入无效!")

}

}

复制

2、定义一个方法 getCapitalNumber 用来将数字转换为对应的大写。

public static String getCapitalNumber(int number){

String[] str = {"零", "壹", "贰", "叁", "肆", "伍", "陆","柒","捌","玖"}

return str[number]

}

复制

3、数字转换为大写的过程

numberStr = ""

while(true){

ge = number % 10//取到输入金额的最后一位数字

String capitalNumber = getCapitalNumber(ge)//将金额的最后一位数字传入getCapitalNumber()方法中,转换为对应的大写

numberStr = capitalNumber + numberStr//转换为大写后的数字进行拼接

number = number / 10

//结束条件 --数字遍历完

if(number == 0){

break

}

}

复制

4、在转换为大写后,不足七位的要在前面补零,零的个数为 7- (输入金额的位数)。

int count = 7 - numberStr.length()

for(int i = 0i <counti++){

numberStr = "零" + numberStr

}

复制

5、将单位与对应的大写数字拼接

String result = ""

String[] arr = {"佰","拾","万","仟","佰","拾","元"}

for(int i = 0i <numberStri++){

char c = numberStr.charAt(i)

result = result + c + arr[i]

}

复制

6、放入完整的代码

下面这个方法可以转换,前提是你的字符内容是数字类型。比如 String str = "123" 或者 char str = '2'\x0d\x0a\x0d\x0achar a = '1'\x0d\x0aString b = String.valueOf(a)\x0d\x0aint c = Integer.parseInt(b)\x0d\x0a\x0d\x0a上面你说的 c - '0' 这一步应该就是转换格式的 ,我知道类似的在 js 中把一个变量转换成字符串 可以用 var str = str+""加两个引号就相当于格式转换了。

import java.io.BufferedReader

import java.io.InputStreamReader

import java.util.Arrays

public class NumberSplit {

public StringBuffer getString(String str) {

StringBuffer strbuf = new StringBuffer("t")

boolean flag = true

for (int i = 0i <str.length()i++) {

char c = str.charAt(i)

// 判断是否是数字

if (c >= '0'&&c <= '9') {

// 判断和字符串中的数字是否重复

for (int j = 1j <strbuf.length()j++) {

if (c == strbuf.charAt(j)) {

// 如果重复,标志位数值为false,并跳出循环否则标志位设置为true.

flag = false

break

} else

flag = true

}

// 只有在即是数字又不重复的情况下才将改字符拼接到字符串上.

if (flag) {

strbuf.append(c)

}

}

}

return strbuf

}

public static void main(String args[]) throws Exception {

System.out.println("请输入一段字符串,并以回车结束")

BufferedReader buf = new BufferedReader(

new InputStreamReader(System.in))

String str = buf.readLine()

StringBuffer strbuf = new NumberSplit().getString(str)

// 将返回的StringBuffer转换为字符数组

char c[] = strbuf.deleteCharAt(0).toString().toCharArray()

// 对字符数组排序

Arrays.sort(c)

// 输出字符数组

for (int i = 0i <strbuf.length()i++) {

System.out.print(c[i])

}

}

import java.io.BufferedReader

import java.io.InputStreamReader

import java.util.Arrays

public class NumberSplit {

public StringBuffer getString(String str) {

 StringBuffer strbuf = new StringBuffer("t")

 boolean flag = true

for (int i = 0i <str.length()i++) {

  char c = str.charAt(i)

// 判断是否是数字

  if (c >= '0'&&c <= '9') {

   // 判断和字符串中的数字是否重复

   for (int j = 1j <strbuf.length()j++) {

    if (c == strbuf.charAt(j)) {

     // 如果重复,标志位数值为false,并跳出循环否则标志位设置为true.

   

flag = false

     break

    } else

     flag = true

   }

   // 只有在即是数字又不重复的情况下才将改字符拼接到字符串上.

   if (flag) {

    strbuf.append(c)

   }

  }

 }

 return strbuf

}

public static void main(String args[]) throws Exception {

 System.out.println("请输入一段字符串,并以回车结束")

 BufferedReader buf = new BufferedReader(

   new InputStreamReader(System.in))

 String str = buf.readLine()

StringBuffer strbuf = new NumberSplit().getString(str)

 // 将返回的StringBuffer转换为字符数组

 char c[] = strbuf.deleteCharAt(0).toString().toCharArray()

// 对字符数组排序

 Arrays.sort(c)

 // 输出字符数组

 for (int i = 0i <strbuf.length()i++) {

  System.out.print(c[i])

 }

}