数组及排序

前端之家收集整理的这篇文章主要介绍了数组及排序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

注意:注意类名不要随便起,避免有已有的类名重名

数组及排序

直接打印出数组中的所有元素

Arrays.toString(array)

随机数的使用

生成两位的随机
Random rd=new Random();
array[i]=rd.nextInt(90)+10;

冒泡排序

  1. int[] array = { 16,32,9,25,90 };
  2. for (int i = 0; i < array.length - 1; i++) {
  3. for (int j = 0; j < array.length - 1 - i; j++) {
  4. if (array[j] > array[j + 1]) {
  5. int temp = array[j];//通过改变判断条件可可变升序还是降序
  6. array[j] = array[j + 1];
  7. array[j + 1] = temp;
  8. }
  9. }
  10. }

suzu.length直接得到数组的长度

数组的运算方法

  1. int [] array2=Arrays.copyOfRange(array,1,5);//数组的复制
  2. int [] array2=new int [10];
  3. System.arraycopy(array,0,array2,4,5);//5为复制的数组长度
  4. Arrays.sort(array);//对数组进行升序排序
  5. for (int i = 0; i < array2.length; i++) {
  6. System.out.println(array2[i]);
  7. }

二维数组

多维数组的定义方式

  1. int [][] array=new int[3][];
  2. array[1]=new int[] {1,3,4};
  3. System.out.println(array[1][2]);

也可以这样定义
int[ ][ ] array=new int [3][4];

  1. int [][] array={{1,3,2},{5,6,8},{3,3},3}};
  2. System.out.println(array[2][2]);
  3. //多维数组由一维数组嵌套组成,每一行的长度不应定相等

数字格式化

对数字的输出进行限定

  1. 例子:
  2. static public void UseApplyPatternMethodFormat(String pattern,double value){
  3. DecimalFormat myFormat=new DecimalFormat();
  4. myFormat.applyPatter(pattern);
  5. System.out.print(value+""+pattern+""+myFormat.format(value);
  6. }例子("####.###",0.798
字符 说明
0 代表阿拉伯数字,使用特殊字符“0”表示一位阿拉伯数字,如果该位不存在数字,则显示0
# 代表阿拉伯数字,使用特殊字符“#”表示一位阿拉伯数字,如果该位存在数字,则显示字符;不存在数字则不显示
. 小数分隔符或货币小数分隔符
- 负号
分组分隔符
E 分隔科学计数法中的尾数和指数
% 本符号放置在数字的前缀或后缀,将数字乘以100显示为百分数
\u2030 本符号放置在数字的前缀或后缀,将数字乘以1000显示为千分数
\u00A4 本符号放置在数字的前缀或后缀,作为货币记号
本符号为单引号,当上述特殊字符出现在数字中时,应为特殊符号添加单引号,系统会将此符号视为普通符号

更改字符串中的字符大小写

str.trim( )只是删除字符串前后的空格,并不会删除字符串中间的空格,例如:
a b c加trim后不会打印出abc。

  1. String str="acsDkKLDkk";
  2. String str2="";
  3. for(int i=0;i<str.length();i++){
  4. char ch=str.charAt(i);
  5. if(Character.isLowerCase(ch)){//判断是否为小写,对应的方法也有判断是否为大写
  6. ch=Character.toUpperCase(ch);//改为
  7. }else{
  8. ch=Character.toLowerCase(ch);
  9. }
  10. str+=ch;
  11. }
  12. System.out.println(str2);

Email格式判断

判断起始字符或最后的字符可用str.endsWith( )和str.starWith( )
当然可用用str.equals( )

  1. public static void main(String[] args) {
  2. Scanner input=new Scanner(System.in);
  3. String email=input.next();
  4. if(email.contains("@")){
  5. int index=email.indexOf("@");//查找标志位@
  6. String start=email.substring(0,index);
  7. boolean isLetterOrNum=true;
  8. for(int i=0;i<start.length();i++){
  9. char ch=start.charAt(i);//相当于遍历字符串
  10. if(!Character.isLetterOrDigit(ch)){
  11. isLetterOrNum=false;//判断是否是字母或数字
  12. }
  13. }
  14. if(isLetterOrNum){
  15. System.out.println("开头是字母或数字组合");
  16. if(email.contains(".")){
  17. int index1=email.lastIndexOf(".");//标志位
  18. String middle=email.substring(index+1,index1);//截取相应字符串
  19. boolean isLetterOrNum1=true;
  20. for(int i=0;i<start.length();i++){
  21. char ch=middle.charAt(i);
  22. if(!Character.isLetterOrDigit(ch)){
  23. isLetterOrNum1=false;
  24. }
  25. }
  26. if(isLetterOrNum1){
  27. System.out.println("中间是字母或数字组合");
  28. int index2=email.lastIndexOf(".");
  29. String last=email.substring(index2,email.length());//index包含最后一位判断最后的结尾方式
  30. if(last.equals(".com")||last.equals(".cn")||last.equals(".net")){
  31. System.out.println(email);
  32. }
  33. }
  34. }
  35. }
  36. }
  37. }

求对角线元素的积

  1. public static void main(String[] args) {
  2. int [][] array=new int[4][4];
  3. Random rd=new Random();
  4. int sum=1;
  5. int sum2=1;
  6. for(int i=0;i<4;i++){
  7. for(int j=0;j<4;j++){
  8. array[i][j]=rd.nextInt(7);
  9. System.out.print(array[i][j]+"\t");
  10. }
  11. System.out.println();
  12. }
  13. for(int i=0;i<4;i++){
  14. for(int j=0;j<4;j++){
  15. if(i==j){
  16. sum*=array[i][j];
  17. }
  18. if(i+j==3){
  19. sum2*=array[i][j];
  20. }
  21. }
  22. }
  23. System.out.println(Arrays.toString(array[0])+Arrays.toString(array[1])+Arrays.toString(array[2])+Arrays.toString(array[3]));
  24. System.out.println(sum+" "+sum2);
  25. }

字母反转输出

  1. public static void main(String[] args) {
  2. Scanner input=new Scanner(System.in);
  3. String str=input.next();
  4. String str2="";
  5. String str3="";
  6. for(int i=0;i<str.length();i++){
  7. char ch=str.charAt(i);
  8. if(Character.isLowerCase(ch)){
  9. ch=Character.toUpperCase(ch);
  10. }else{
  11. ch=Character.toLowerCase(ch);
  12. }
  13. str2+=ch;
  14. }
  15. for(int i=str2.length();i>0;i--){
  16. char ch=' ';
  17. char temp=' ';
  18. // System.out.println(str2.charAt(str2.length()-1));
  19. ch=str2.charAt(i-1);
  20. str3+=ch;
  21. }
  22. System.out.println(str3);
  23.  
  24. }

重写与重载的区别

1.方法名称相同
2.返回值类型相同
3.参数列表相同
4.访问修饰符不能比父类更严格

重写:override,又叫方法重写或者方法覆盖,指发生在有父子关系的子类中,要求访问控制权限修饰符(public protected default private)不能更加严格,方法签名(返回类型,方法名,参数列表的个数顺序类型)必须相同,抛出的异常不能更加广泛.例如:
父类中: public void doQuery(String str,Map map) throws Exception;
那么子类中: public void doQuery(String str,Map map) throws sqlException{}
public为最高权限,所以子类只能为public. 如果父类为private,那么子类中可以为任何修饰符.
void doQuery(String str,Map map)必须完全一样.
throws Exception 父类抛出所有异常,子类中可以抛出Exception和Exception的子类异常.
如果父类抛出IOException,那么子类只能抛出IOException和IOException的子类异常.

重构:overload,又叫方法重载或者方法过载,指发生在本类当中的,方法名称相同但是参数列表不同的方法(参数列表包括个数顺序类型). 例如: 类中:public void doQuery(String str); public String doQuery(Map map); public void doQuery(String str,Map map); 一个类中以上三种方法都属于重构.

猜你在找的正则表达式相关文章