冒泡排序/操作字符串数据的方法

一.冒泡排序:

解析:1.比较相邻的两个元素,如果前一个比后一个大,则交换位置。
            2.第一轮的时候最后一个元素应该是最大的一个。
            3.按照步骤一的方法进行相邻两个元素的比较,这个时候由于最后一个元素已经是最大的了,所以最后一个元素不用比较


    eg:var arr=[23,1,2,0,11];
第一轮比较(0):    比较了4次(arr.length-i-1)
    1,23,2,0,11;
    1,2,23,0,11;
    1,2,0,23,11;
    1,2,0,11,23;
第二轮比较(1)   比较了3次(arr.length-i-1)
    1,2,0,11,23;
    1,0,2,11,23;
    1,0,2,11,23;
第三轮比较(2)  比较了2次(arr.length-i-1)
    0,1,2,11,23;
    0,1,2,11,23;
第四轮(3)   比较了1次(arr.length-i-1)
    0,1,2,11,23;

案例1:

<script type="text/javascript">
var arr=[23,1,2,0,11];
          var times=0;
			for(var i=0;i<arr.length-1;i++){
				for(var j=0;j<arr.length-i-1;j++){
					var temp;
					if(arr[j]>arr[j+1]){
						temp=arr[j];
						arr[j]=arr[j+1];
						arr[j+1]=temp;
					}
				}
			}
			for(var i=0;i<arr.length;i++){
				document.writeln(arr[i]);
			}
</script>

案例2

<script type="text/javascript">
			var str=[23,63,12,28,88]
			var times=0;
			for(var i=0;i<str.length-1;i++){
				for(j=0;j<str.length-i-1;j++){

					if(str[j]>str[j+1]){
						var temp=str[j];
						str[j]=str[j+1];
						str[j+1]=temp;
					}
				}
			}
			for(var i=0;i<str.length;i++){
				document.writeln(str[i]);
			}
</script>
<script type="text/javascript">
 var str=[23,63,12,28,88]
			var times=0;
			for(var i=0;i<str.length-1;i++){
				for(j=i+1;j<str.length;j++){
					if(str[i]>str[j]){
						 var temp=str[i];
						str[i]=str[j];
						str[j]=temp;
					}
				}
			}
			for(var i=0;i<str.length;i++){
				document.writeln(str[i]);
			}
</script>

 二.操作字符串数据的方法

(1)match:输出字符串中指定的值;match()方法类似于 indexOf()方法,但是它返回的是指定的值,而不是字符串的位置

(2)search():用于检查字符串中指定的子字符串;

(3)inderOf():返回字符串中元素第一次出现的索引位置(索引可以是数字或字母)

(4)replace():在字符串中用一些字符替换另一些字符

<script type="text/javascript">
//			(1)match:输出字符串中指定的值;
             var str='Html Css JavaScript';
//           document.write(str.match('Css'));
//           (2)search():用于检查字符串中指定的子字符串;
             var str1='I Love JavaSCript';
//            以字符串的首个字符索引输出,输出结果为2
//           document.write(str1.search('Love'));
//            以字符串的首个字符索引输出,输出结果为7
//           document.write(str1.search('JavaSCript'));
//           (3)indexOf():返回字符串中元素第一次出现的索引位置(索引可以是数字或字母)
//           document.write(str1.indexOf('L','0'));
//           document.write(str1.indexOf('L','o'));
//           document.write(str1.indexOf('a','9'));
//           (4)replace():在字符串中用一些字符替换另一些字符
//            document.write(str1.replace('Love','like'));
</script>

(5)charAt(n):用来获取字符中的某一个字符,n为字符串的下标(索引)

<script type="text/javascript">
//           (5)charAt(n):用来获取字符中的某一个字符,n为字符串的下标(索引)
               var str2='How Are You';
//               获取字符串长度
//             alert(str2.length);
//              逐个获取字符串的长度:
//             document.write(str2.charAt(0));
//             document.write(str2.charAt(1));
//             document.write(str2.charAt(2));
//             document.write(str2.charAt(3));
//             document.write(str2.charAt(4));
//             document.write(str2.charAt(5));
//             document.write(str2.charAt(6));
//             document.write(str2.charAt(7));
//             document.write(str2.charAt(8));
//             document.write(str2.charAt(9));
//             document.write(str2.charAt(10));
//             document.write(str2.charAt(11));
//             统一获取字符串长度使用for循环
             for(var i=0;i<str2.length;i++){
                  document.write(str2.charAt(i)+',');
             }
//             将每一个字符放进数组中
             var strString=new Array();
             for(var i=0;i<str2.length;i++){
             	  strString[i]=str2.charAt(i);
             }
             document.write(strString+'<br/>');
             for(i=0;i<strString.length;i++){
             	document.write(strString[i]);
             }
</script>

(6)toUpperCase()/toLowerCase()大小写转换

(7)concat()连接字符串

<script type="text/javascript">
//             (6)toUpperCase()/toLowerCase()大小写转换
//                toUpperCase();大写转换
                  var str3='Good Morning';
//                document.write(str3.toUpperCase());
//                toLowerCase()小写转换
//                document.write(str3.toLowerCase());
//             (7)concat()连接字符串
                 var str4=str3.concat(' good night');
//               document.write(str4);
//               alert(str4);
</script>

 

(8)localecompare()比较字符串,返回一个数字

<script type="text/javascript">
//             (8)localecompare()比较字符串,返回一个数字
//            (1)如果字符串 1 小于字符串 2,则返回小于 0 的数字;
//			 (2)如果字符串 1 大于字符串 2,则返回数字 1;
//			 (3)如果字符串 1 等于字符串 2,则返回数字 0;
//	                按照字母的大小写比较
                 var str5='a,b,c,d';
                 var str6='A,B,C,D';
//               返回值为 -1
//              document.write(str5.localeCompare(str6));
//              var str7='Java';
//              var str8='Css';
//                返回值为 1
//              document.write(str7.localeCompare(str8));
</script>

(9)split():分割字符串,返回结果为一个数组;

说明:分割符可以是一个字符、多个字符或一个正则表达式。分割符并不作为返回数组元素的一部分

(10)substring()截取字符串某一部分字符串;

说明:开始位置是一个非负的整数,表示从哪个位置开始截取。结束位置也是一个非负的整数,表示在哪里结束截取。

<script type="text/javascript">
//              (9)split()分割字符串,返回结果为一个数组
                 var str9='I Love JavaScript';
//                以空格输出结果为I,Love,JavaScript,字符长度为3,以逗号代替分割的内容
                 var arr1=str9.split(' ');
//                以字母o为分割点分为两部分,结果为:I L,ve JavaScript;字符长度=2
                 var arr2=str9.split('o');
                 alert(arr1);
                 alert(arr2);
                 alert(arr1.length);
                 alert(arr2.length);
   

//               (10)substring()截取字符串某一部分字符串
//                输出结果为L
               document.write(str9.substring(2)+'<br/>');
//                输出结果为:I Love JavaScript
               document.write(str9.substring(0,100));

</script>

 

问题1:substr和substring的区别:

(1)相同点:如果只写一个参数,两者的作用都是一样的:就是截取字符串当前下标以后直到字符串最后的字符串片段。 

(2)不同点:当写了第二个参数时,两者就会有完全不同的含义:

substring(start,end):返回一个从 start 开始到最后(不包含 end )的字符串。                                             

substr(start,length):返回一个从 start 开始到最后(包含 end )的指定长度的字符串。注意:如果 length 为 0 或负数,将返回一个空字符串。如果没有指定该参数,则子字符串将延续到 stringvar 的最后。     

案例:

var str9='I Love JavaScript';
//输出结果为:Lov
  document.write(str9.substring(2,5)+'<br/>');
//输出结果为:Love               
  document.write(str9.substr(2,5));


问题2:如何将每一个字符放到数组中?

<script type="text/javascript">
			var str='Can You Speak English'
			var strString=new Array();
               for(var i=0;i<str.length;i++){
               	  strString[i]=str.charAt(i);
               }
               document.write(strString+'<br/>');
               for(i=0;i<strString.length;i++){
               	document.write(strString[i]);
               }
</script>

问题3:将每一个字符输出到页面?

var str='Hello,JavaCript';
//          通过遍历数组
            for(var i=0;i<str.length;i++){
            	document.write(str.charAt(i));
            }

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值