案例一 拼接字符串

package com.lkbhua.Test;
public class test03 {
public static void main(String[] args) {
/* 拼接字符串
定义一个方法,把int数组中的数据按照指定的格式拼接成一个字符串返回,
调用该方法,并输出结果:
例如:
数组为 int[] arr = {1, 2, 3};
执行方法后的输出结果为:[1,2,3]
* * */
int arr[] = {1,2,3};
String str = arrayToString(arr);
System.out.println(str);
}
// 1.我要干嘛? ---遍历数组并且把数组拼接成一个字符串
// 2.我干这件事情需要什么才能完成? ---数组
// 3.我干完之后是否要把返回值给调用处 ---返回一个拼接之后的字符串
// 如果调用处需要继续使用,那么必须返回
// 如果----不需要-------------也可以不返回
public static String arrayToString(int[] arr) {
// 判断数组是否为null
if(arr == null){
return "数组为null";
}
if(arr.length == 0){
return "数组为空[]";
}
// 拼接左括号
String result = "[";
// 正常数组执行操作
for(int i = 0; i < arr.length; i++){
// i:索引 arr[i]:元素
if(i == arr.length - 1){
result = result + arr[i];
}else{
result = result + arr[i] + ",";
}
}
// 拼接右括号
result = result + "]";
return result;
}
}
案例二 字符串反转

package com.lkbhua.Test;
import java.util.Scanner;
public class test04 {
public static void main(String[] args) {
/* 字符串反转
定义一个方法,实现字符串反转。
键盘录入一个字符串,调用该方法后,在控制台输出结果。
例如:键盘录入abcdef,控制台输出fedcba
* */
String result = reverse("abcdef");
System.out.println(result);
}
// 1、我要干嘛? ---字符串的反转
// 2、我干这个事情需要什么才能完成? --- 需要一个字符串
// 3、调用处是否需要继续使用方法的结果呢? --- 需要结果进行输出
public static String reverse(String str){
// abc
String result = "";
for (int i = str.length()-1; i > 0 ; i--) {
// i 依次表达字符串中的每一个索引(倒着的)
char c = str.charAt(i);
result = result + c;
}
return result;
}
}
案例三 金额转换



逆着推算,先去掉单位,后去掉前面的零,等到2135. 写代码的 时候就顺着这个逻辑写。

第一步:2135➡贰壹叁伍
① 获取每一位数字
② 利用数组将数字变成大写

这种一一对应的思想即“查表法”。
第二步:很简单,缺多少就补多少零
第三步:输出单元即可

package com.lkbhua.Test;
import java.util.Scanner;
public class test05 {
public static void main(String[] args) {
/** 转换单位
* 2315---贰叁壹伍
* 补齐七位,不足的前面补0
*/
int money;
while(true){
// 键盘录入一个金额
Scanner sc = new Scanner(System.in);
System.out.println("请输入金额:");
money = sc.nextInt();
// 判断金额是否合法
if (money >= 0 && money < 10000000) {
break;
}
else {
System.out.println("金额不合法");
}
}
System.out.println("你输入的金额是"+money);
// 定义一个变量用来表示钱的大写
String moneystr = "";
// 2、得到money中的每一位数字
// 其实就是一个如何获取 一个整数的问题
while(true){
// 从右往左获取每一位数字
int ge = money % 10;
String chinese = change(ge);
// 把转换之后的大写拼接刀moneystr中
moneystr = chinese + moneystr;
// 第一次循环:“伍”+“ ” = “伍 ”
// 第二次循环:“叁”+“伍”+“ ” = “叁伍 ”
// 去掉每一位数字
money = money / 10;
// 如果数字上的每一位全部获取到了,则跳出循环
if (money == 0) {
break;
}
}
// 3、在前面补零,补齐7位
int count = 7 - moneystr.length();
for (int i = 0; i < count; i++) {
moneystr = "零"+moneystr;
}
System.out.println(moneystr);
// 4、插入单位
// 定义一个数组表示单位
String[] units = {"佰","拾","万","千","佰","拾","元"};
// 如何插入呢
// 遍历moneystr,依次得到每一位
// 然后把单位插入
String result = "";
for (int i = 0; i < moneystr.length(); i++) {
char c = moneystr.charAt(i);
// 把大写数字和单位拼接到result中
result = result + c + units[i];
}
// 5、打印最终的效果
System.out.println(result);
System.out.println("转换完成");
}
// 定义一个方法把数字变成大写的中文
// 1--壹
public static String change(int money) {
// 定义数组
String[] chinese = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
// 返回结果
return chinese[money];
}
}
声明:
以上均来源于B站@ITheima的教学内容!!!
本人跟着视频内容学习,整理知识引用

977

被折叠的 条评论
为什么被折叠?



