1· 字符串的反转
主要在于循环要从尾开始,定义一个字符变量串变量,用于接受每个字符.
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个字符串");
String result=sc.nextLine();
System.out.println(reverse(result));
}
public static String reverse(String str){
String result="";
for(int i=str.length()-1;i>=0;i--){
char c=str.charAt(i);
result =result+c;
}
return result;
2· 字符串的拼接
核心在于 设置一个字符串变量,使用循环将将数组元素分别加入字符串常量中.
public static void main(String[] args) {
int arr[]={1,2,3};
System.out.println(arrToString(arr));
}
private static String arrToString(int[] arr) {
String a="[";
for (int i = 0; i < arr.length-1; i++) {
a=a+arr[i]+",";
}
a=a+arr[arr.length-1];
return a+"]";
}
3· 录入一个整数将其添加到数组中
核心在于得到整数位数,创建动态数组。
public static void main(String[] args) {
//定义一个整数
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个整数");
int sum=sc.nextInt();
int temp=sum;
//得到数组的长度
int count=0;
while(sum!=0){
sum=sum/10;
count++;
}
int arr[]=new int[count];
//将每一位放入数组中
int index=0;
while(temp!=0){
int ge=temp%10;
temp=temp/10;
arr[index]=ge;
index++;
}
//输出验证
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
}
4· 模拟发票金额的大小写转换
核心在于 一:分别创建一个能够得到 大写 字符数组 和 一个能够得到 单位 字符数组的数组,使其能够传出需要的大写字母与单位数组。
二:大量使用动态数组,值传递等知识,需要调试断点找出错误。
//创建 大写数字对应表
char[] chs = {'零','一', '二', '三', '四', '五', '六', '七', '八', '九'};
char[] cha={'佰','拾','万','仟','佰','拾','元'};
Scanner sc = new Scanner(System.in);
System.out.println("输入要取出的金额");
int number = sc.nextInt();
change(number,chs,cha);
}
public static void change(int number, char[] chs, char[] cha) {
//求数字的长度
int count = 0;
int temp = number;
while (number > 0) {
number = number / 10;
count++;
}
//定义数组,将拆分后的数字依次放入数组
int arr[] = new int[count];
for (int i = arr.length - 1; i >= 0; i--) {
int a = temp % 10;
temp = temp / 10;
arr[i] = a;
}
//转换为大写
for (int i = 0; i < arr.length; i++) {
System.out.print(chs[arr[i]]);
}
System.out.println();
//补齐够七位,够七位,直接用,不够七位创建新数组
int all = arr.length;
if (arr.length <= 7) {
int arr1[] = new int[7];
for (int i = 6; all > 0; i--, all--) {
arr1[i] = arr[all - 1];
}
finalMethod(cha,arr1,chs);
} else {
System.out.println("数值过大,最多7位");
}
}
//插入字符遍历
public static void finalMethod(char[] cha,int[] arr,char[] chs){
for (int i = 0; i < arr.length; i++) {
System.out.print(chs[arr[i]]);
System.out.print(cha[i]);
}
}
5·统计字符串中大小写以及数字个数
核心在于 知道怎么判断大小写与数字的方法
注意 : 判断数字时,不要误用ASCII码。
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入字符串");
String a = sc.nextLine();
int bigCount=0;
int smallCount=0;
int intCount=0;
for (int i = 0; i < a.length(); i++) {
char c=a.charAt(i);
if(c>='A' && c<='Z'){
bigCount++;
}else if (c>='a' && c<= 'z'){
smallCount++;
}else if(c>='0' && c<='9'){
intCount++;
}
}
System.out.println("大写字母为:"+bigCount+
"小写字母为:"+smallCount+
"数字为:"+intCount);
}
6· 遍历字符串
学会使用 charAt()方法
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个字符串:");
String s = sc.nextLine();
for (int i = 0; i <s.length() ; i++) {
char c=s.charAt(i);
System.out.println(c);
}
}
7·定义一个长度为3的数组,数组存储1~3名学生对象作为初始数据,学生的学号,姓名各不相同。
要求1:再次添加一个学生对象,并在添加时进行学号的唯一判断;
要求2:添加完毕之后,遍历所有学生信息;
要求3:通过id删除学生信息,若存在,则删除;不存在,提示删除失败;
要求4:删除完毕之后,遍历所有学生信息
要求5:查询数组id为“xiaowang123”的学生,若存在,则他的年龄+1;
package DAY2.复杂对象数组;
public class studenrTest {
public static void main(String[] args) {
student arr[]=new student[3];
student s1=new student(001,"张三",456);
student s2=new student(002,"张si",2);
student s3=new student(003,"张wu",1);
arr[0]=s1;
arr[1]=s2;
arr[2]=s3;
student s4=new student(004,"张6",3);
//测试插入功能
boolean flag=contain(arr,s4.getId());
if(flag){
System.out.println("当前id重复");
}else{
int a=getCount(arr);
if(a>=arr.length){
student[] arr1=creatArr(arr);
arr1[a]=s4;
}else{
arr[a]=s4;
}
}
//测试删除功能
int temp=1;
int index = getIndex(temp, arr);
delete(arr,temp);
//测试年龄增加功能
int idTset=1;
addAge(arr,idTset);
}
//判断是否存在
public static boolean contain(student[] arr,int id){
for(int i=0;i<arr.length;i++){
//依次获取数组里面的每一个学生对象
student stu=arr[i];
//获取数组中学生对象的id
int sid=stu.getId();
if(sid==id){
return true;
}
}
return false;
}
//判断数组存入了几个元素
public static int getCount(student[] arr){
int count=0;
for (int i = 0; i < arr.length; i++) {
student stu=arr[i];
if(stu!=null){
count++;
}
}
return count;
}
//创建新数组的方法
public static student[] creatArr(student[] arr){
student arr1[]= new student[arr.length + 1];
for (int i = 0; i < arr.length; i++) {
arr1[i]=arr[i];
}
return arr1;
}
//遍历
public static void bl(student[] stu) {
for (int i = 0; i < stu.length; i++) {
try {
student arr = stu[i];
System.out.println(arr.getId() + " " + arr.getName() + " " + arr.getAge() + " ");
} catch (Exception e) {
System.out.println("");
}
}
}
//找到要操作元素对应的索引值
public static int getIndex(int s,student[] arr){
for(int i=0;i<arr.length;i++){
if(s==arr[i].getId()){
return i;
}
}
return -1;
}
//删除学生
public static void delete(student[] arr,int index){
if(index>=0){
arr[index]=null;
bl(arr);
}else{
System.out.println("id不存在,删除失败");
}
}
//年龄增加
public static void addAge(student[] arr,int id){
boolean contain = contain(arr, id);
if(contain){
int index = getIndex(id, arr);
arr[index].setAge(arr[index].getAge()+1);
}
}
}
比较麻烦的题目,多次涉及到函数的相互调用,按着题目要求一步步完成即可