day04
来源:互联网 发布:linux 脚本优先级 编辑:程序博客网 时间:2024/04/23 21:30
数组
数组实际上是一组相同类型数据的线性集合,当在程序中需要处理一组数据,或者传递一组数据时,可以应用这种类型的数组。
字符串类型
常用的字符串类型有String类型和StringBuffer类型,前者一旦创建就存储在内存中,除了重新赋值,不能改变。后者可以通过一些方法来变动。
代码:
用数组求出平均数
import java.util.*;public class ArrayScore { public static void main(String[] args){ int m = 0; System.out.println("请输入人数:"); Scanner scanner = new Scanner(System.in); m = scanner.nextInt(); int scores[] = new int[m]; int sum = 0; for (int i = 0; i < scores.length; i++) { System.out.println("请输入第"+(i+1)+"位的分数:"); scores[i] = scanner.nextInt(); sum +=scores[i]; } float array = 0; array = sum/m; System.out.println("平均分数为:"+array); }}
输出结果:
数组排序
import java.util.Arrays;public class ArraySort { public static void main(String[] args) { int arr[] = {12,56,44,9,45,87,32,84}; int arr1[] = new int [5];// arr1 = Arrays.copyOf(arr, 6); arr1 = Arrays.copyOfRange(arr, 3, 9); for (int i = 0; i < arr1.length; i++) { System.out.print(arr1[i]+" "); } }}
其中用到的方法:
Arrays.copyOfRange(arr, 3, 9)
表示从数组下标为3的位数开始,从数组中截取9位出来,结果是一个新的数组。
运行结果:
数组的冒泡排序
import java.util.Scanner;public class Bubble { public static void main(String[] args){ System.out.println("输入数组长度:"); Scanner scanner = new Scanner(System.in); int m = scanner.nextInt(); int array[] =new int [m]; int temp = 0; for(int a = 0; a <array.length;a++){ System.out.println("输入第"+(a+1)+"位数"); array[a] = scanner.nextInt(); } System.out.println("排序前的数组:"); for (int x = 0; x < array.length; x++) { System.out.print(array[x]+" "); } for(int i = 0; i < array.length; i++){ for(int j = 0; j < array.length-i-1;j++){ if(array[j] > array[j+1]){ temp = array[j+1]; array[j+1] =array[j]; array[j] = temp; } } } System.out.println(); System.out.println("排序后的数组:"); for (int k = 0; k < array.length; k++) { System.out.print(array[k]+" "); } }}
冒泡排序的基本思路就是从下往上依次比较,如果后者小于前者,就进行一次交换。以此类推。
运行结果:
用数组来完成斐波那契数列的求和
import java.util.*;public class ArrayRabbits { public static void main(String[] args){ int n; System.out.print("要求第几个月的兔子总数:"); Scanner s = new Scanner(System.in); n = s.nextInt(); int array[] = new int[n]; array[0] = 1; array[1] = 2; array[2] = 3; for(int i = 3;i < array.length;i++){ array[i] = array[i-1]+array[i-3]; } System.out.println(array[n-1]); }}
运行结果:
输出一个九宫格的二维数组
public class ErWeiArray { public static void main(String[] args) { int [][]array = new int [3][3]; array[0] = new int[]{4,9,2}; array[1] = new int[]{3,5,7}; array[2] = new int[]{8,1,6}; for (int i = 0; i < array.length; i++) { int []temp = array[i]; for (int j = 0; j < temp.length; j++) { System.out.print(temp[j]+" "); } System.out.println(); } }}
运行结果:
随机输出10个2位数,然后给他们排序
import java.lang.reflect.Array;import java.util.Arrays;import java.util.Random;public class RandomTest { public static void main(String[] args){ Random random = new Random(); int x = 0; int []arr = new int[10]; for (int i = 0; i < 10; i++) { do{ x = random.nextInt(100); if(x>=10){ arr[i] = x; } }while(arr[i]==0); }//获取值完成 System.out.println(Arrays.toString(arr)); int temp = 0; for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr.length-i-1; j++) { if(arr[j]>arr[j+1]){ temp = arr[j+1]; arr[j+1] =arr[j]; arr[j] = temp; } } } System.out.println(Arrays.toString(arr)); }}
其中用到的方法:Random()方法,Random()方法下的nextInt(s)方法是输出随机数,s的值是随机数的最大值。
Arrays.toString(arr)这个方法就是把数组转化成字符串。
运行结果:
将字符串中的大小写字母改变大小写
public class String1 { public static void main(String[] args) { String s ="asde1234fIUGIUDB"; String s1 = ""; for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); boolean ch1 = Character.isUpperCase(c); boolean ch2 = Character.isLowerCase(c); if(ch1==true){ c = (char)(c+32); } else if(ch2==true){ c = (char)(c-32); } s1 = s1.concat(String.valueOf(c));//字符连接的语句 } System.out.println(s1); }}
用到方法:Character.isUpperCase(c);转换成大写字母
Character.isLowerCase(c);转换成小写字母
String.valueOf(c)将字符串用字符的形式返回
s1.concat()连接字符串
运行结果:
字符串中加入,
import java.util.Scanner;public class Stringbuffer { public static void main(String[] args){ StringBuffer buffer =new StringBuffer("131465498768435132123"); for (int i = 3; i < buffer.length(); i+=4) { buffer.insert(i, ','); } System.out.println(buffer); }}
运行结果:
判断一串字符串是否为邮箱
import java.util.Scanner;public class YouXiang { public static void main(String[] args) { String s = ""; boolean panduan = true; System.out.print("请输入邮箱:");//输入邮箱 Scanner scanner = new Scanner(System.in); s = scanner.nextLine(); boolean rule0 = s.contains("@"); int rule01 = s.indexOf("@"); int rule02 = s.lastIndexOf("@"); //判断是否有且只有一个@ if(rule0==false || rule01 != rule02 ){ System.out.println("邮箱格式输入错误"); panduan = false; } boolean rule2 = s.endsWith(".com"); boolean rule3 = s.endsWith(".cn"); boolean rule4 = s.endsWith(".net"); //判断结尾是否有一个.com.cn.net if(rule2 == false && rule3 == false && rule4 == false){ System.out.println("邮箱格式输入错误"); panduan = false; } String[] str = s.split("@");//分割字符串 for (int i = 0; i < str[0].length(); i++) { char c = s.charAt(i); //判断@前面是不是字母数字_的组合 if(c<'A'&&c>'z'&&c<'0'&&c>'9'&&c!='_'){ System.out.println("邮箱格式输入错误"); panduan = false; } } for (int i = 0; i < str[1].length(); i++) { char c = s.charAt(i); //判断@后面是不是字母数字.的组合 if(c<'A'&&c>'z'&&c<'0'&&c>'9'&&c!='.'){ System.out.println("邮箱格式输入错误"); panduan = false; } } if(panduan==true){ System.out.println("邮箱格式输入正确"); } }}
用到方法s.charAt(i);获取字符串相应位置的字符。
s.split(“@”);将字符串从指定字符处截断。
运行结果:
其他方法
boolean e = Character.isLetter(c);//判断字符是不是字母boolean r = Character.isDigit(c);//判断字符是不是数字boolean q = s.endsWith("asd");//判断结尾是不是指定字符串String w = s.substring(3, 5);//从当前字符串中截取一段字符串boolean b = s.startsWith("1");//判断一个字符串是否从指定字符串开始
0 0
- day04
- Day04
- day04
- day04
- day04
- day04
- day04
- day04
- day04
- day04
- day04
- day04
- day04
- day04
- Day04
- day04
- day04
- day04
- 留在福州?还是去深圳打拼?(filter 过滤器)
- Vijos P1680距离
- Object-C KVC模式使用详解(一)
- jquery $(document)
- C++函数的返回值——返回引用类型&非引用类型
- day04
- HDU 1160(我真的不会DP啊啊啊啊)
- jQuery框架下的多选文本框
- c++三种野指针
- javascript生成对象编程模式
- java核心类与性能优化
- 记C++课程设计--学生信息管理系统
- C++网络爬虫的实现——WinSock编程
- 读写文件:每次读入大文件中的一行、读写.CSV文件