JavaScrip数组方法/数组排序/Java常用实用类JavaPattern类与Matcher类/StringBuffer类

JavaScript数组

数组的创建方法

  1. 使用数组文本创建方法(最简单直接的方法)
var cars = ["Tesla", "Audi", "BMW"];
  1. .使用new关键字加Array方法创建数组(不建议使用的方法)
var cars = new Array("Tesla", "Audi", "BMW");

什么是关联数组

  • 具有命名索引的数组成为关联数组,但JavaScript不支持命名索引数组

JavaScript数组方法

  • Array.length //返回数组的长度(属性)

  • Array.sort() //将数组按顺序排列默认是按字母顺序进行排序

  • Array.forEach() //遍历数组

  • Array.toString() //将数组返回一个字符串形式

var cars = ["Tesla", "Audi", "BMW"];
document.getdocumentById('demo').innerHtml = car.toString() // 返回Tesla,Audi,BMW
  • Array.join() //同类似,但可以自定义定界符
var cars = ["Tesla", "Audi", "BMW"];
document.getdocumentById('demo').innerHtml = car.join("#") // 返回Tesla#Audi#BMW
  • Array.pop() //删除数组的最后一个元素
  • Array.shift() //删除数组的首个元素,同时其他元素的索引位置往前移
  • Array.push("newElement") //向数组添加新的元素(在数组最后)
  • Array.unshift() //在数组开头添加新的元素,其后面的元素相应地往后移
  • Array.splice() //向数组添加新的项(第一个参数是索引位置,第二个参数是删除多少元素,其余是要添加的元素)
var cars = ["Tesla", "Audi", "BMW"];
cars.splice(2,0,"Benz","VW")//从索引位置为2开始插入元素,删除0个元素

另外还可以用来删除元素

var cars = ["Tesla", "Audi", "BMW"];
cars.splice(2,1)//意思就是从位置2开始删除一个元素
  • Array.concat() //将数组合并返回第三方数组
var car1 = ["Tesla", "Audi", "BMW"];
var car2 = ["Benz","VW"];
var car3 = car1.concat(car2);	//意思是car1和car2组合成第三方数组
cars.splice(2,1)//意思就是从位置2开始删除一个元素
  • Array.slice() //对数组进行剪裁,然后返回一个新数组(如果有第二个参数那么就是结束参数,但不包括结束参数)
var cars = ["Tesla", "Audi", "BMW","Benz","VW"];
var car2 = cars.slice(1) //意思是从索引位置为2开始断开数组,返回新的数组

JavaScript数组排序

  • Array.sort() //将数组按顺序默认是字母按顺序进行排序,如果想对数字进行排序那么要用到比值函数
  • Array.reverse() //将数组翻转,和上面的sort()结合就可以实现倒序的效果
var score = [20,10,50,30,40];
score.sort(function(a,b){return a - b});	//数组将变为[10,20,30,40,50]
score.sort(function(a,b){return b - a});	//数组将变为[50,40,30,20,10]
  • 还可以用比值函数来打乱数组
var score = [20,10,50,30,40];
score.sort(function(a,b){return 0.5 - Math.random()});	//返回随机顺序的数组
  • 找数组最大/小值的方法,通过对数组先排序再找最大最小值的方法效率低,可以使用Math.max()/Math.min()方法
    一定要注意要有Math.max.apply(null,text) //apply ,null
var text = [28,45,67,98,67]
document.getElementById('demo').innerHTML = Math.max.apply(null,text)	//返回最大值

JavaPattern类与Matcher类

首先Pattern的意思是模式,Marcher是匹配的意思,他们的作用都是用于解决检索问题

使用Pattern和Matcher类的步骤

  1. Pattern对象(用于封装正则表达式)使用Pattern.compile("正则表达式")方法
	String s = "孙悟空的电子邮箱是sunwukong@163.com,猪八戒的电子邮箱是zhubajie@163.com";  //字符串
	String regex = "\\w+@\\w+\\.[a-z]+(\\.[a-z])?)"; //通用电子邮件的正则表达式
	Pattern pattern = Pattern.compile(regex);   //创建一个pattern对象,里面封装了正则表达式regex
  1. Matcher对象(要结合Pattern类的对象进行使用)Pattern类的对象.matcher("字符串")
 Matcher matcher = pattern.matcher(s);   //意思是通过封装regex的pattern对s字符串进行检索,然后返回到实例对象matcher

创建Matcher类对象完成后可以调用其方法

  • public boolean find() //通过搜索查看是否有相匹配的值,有就返回true,反之
  • public String group() //返回用find()方法后的匹配的String对象
  • public String replaceAll(String replacement) //将检索到的相匹配的字符转为replacement,返回String

通过例子

public class Example9_14 {
    public static void main(String[] args) {
        String s = "电费:632.2元,水费:526.54元,网费:1009元";  //字符串
        String regex = "[0-9]+[.]?[0-9]*"; //
        Pattern pattern = Pattern.compile(regex);   //创建一个pattern对象,里面封装了正则表达式regex
        Matcher matcher = pattern.matcher(s);   //意思是通过封装regex的pattern对s字符串进行检索,然后返回到实例对象matcher
        double total = 0;
        while(matcher.find()){  //查看是否拥有相配的对象
            String str = matcher.group();   //将相匹配的对象赋值给str
            total = total + Double.parseDouble(str);    //将数字字符串转double类型
        }
        System.out.println("总费用是:"+total);
        String [] weatherForecast = {"北京:-9度至7度","广州:10度至21度","哈尔滨:-29至-7"};    //创建一个字符串
        double averTemperture [] = new double[weatherForecast.length];  //创建一个数组对象
        for (int i = 0; i < weatherForecast.length; i++) {
            matcher = pattern.matcher(weatherForecast[i]);
            total = 0;
            int count = 0;  //用于字符串里有多少个相配的字符
            while(matcher.find()){  //查看是否拥有相匹配的对象
                count++;
                String str = matcher.group();   //将相匹配的对象赋值给str
                total = total + Double.parseDouble(str);
            }
            averTemperture[i] = total/count;    //将平均气温存放到数组中
        }
        System.out.println("三地平均气温是"+ Arrays.toString(averTemperture));
    }
}

运行结果

D:\HelloWorld\out\production\HelloJava TextCourse.Example9_14
总费用是:2167.74
三地平均气温是[8.0, 15.5, 18.0]

进程已结束,退出代码 0

StringBuffer类

buffern. [计] 缓冲区;缓冲器,[车辆] 减震器
vt. 缓冲
因为String类是final类,而且String类不提供修改字符序列的方法,简单地说就是String对象一旦诞生就无法修改了
因此StringBuffer类诞生了,该类提供能可修改对象字符序列的方法

创建StringBuffer类对象

    StringBuffer Buffer = new StringBuffer("我爱学习");

StringBuffer类的常用方法

  • .append(String s) //在字符串尾部添加字符串s
  • public char charAt(int n) //返回参数n位置上的字符
  • public void setCharAt(int n ,char ch) //将参数n位置上的字符改为ch
  • StringBuffer insert(int index ,String str) //在参数index位置上插入str字符序列
  • public StringBuffer reverse() //将对象实体中的字符序列翻转
  • StringBuffer delete(int startIndex ,int endIndex) //删除[stratIndex,endIndex)中的字符序列
  • StringBuffer replace(int startIndex ,int endIndex,String str) //将[stratIndex,endIndex)中的字符替换成str

CET4P153

underneath
theory
recover
incident
fashion
upset
torture

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值