字符数组

关于java中split的使用

一笑奈何 提交于 2019-11-29 16:09:26
之前在 http://shukuiyan.iteye.com/blog/507915 文中已经叙述过这个问题,但是最近一次笔试中居然有碰到了这个知识点,而且还做错了,囧!学艺不精啊。题目大概是这样的: Java代码 String s2="this is a test"; String sarray[]=s2.split("/s"); System.out.println("sarray.length="+sarray.length); 这个输出是什么还是编译出错?我想那个split方法中的参数要是"s"的话,输出一定是4了,就是将原来字符串分成了数组{"thi","i","a te","t"},但是原题split方法中的参数要是"/s",那么这个参数到底是嘛意思呢,实验后输出结果居然是1。 原因还得深究啊。 java.lang.string.split,即split 方法,它实现的功能是将一个字符串分割为子字符串,然后将结果作为字符串数组返回。 格式为: stringObj.split([separator,[limit]]) 其中stringObj是必选项,表示要被分解的 String 对象或文字。该对象不会被 split 方法修改。 separator 为可选项,表示字符串或正则表达式对象,它标识了分隔字符串时使用的是一个还是多个字符。如果忽略该选项

[Ljava.lang.String是一个字符串数组的字节码表示

拜拜、爱过 提交于 2019-11-29 15:36:36
打印一个字符串数组的话,会发现 String[] arr = new String[10]; // String[] arr = {"yanggb", "huangq"}; System.out.println(arr); // [Ljava.lang.String;@3e5084c9 这里直接打印了数组名,因为数组是引用数据类型,数组名是数组的管理者,而非所有者。 下面是打印出来的数组名([Ljava.lang.String;@3e5084c9)的含义解释。 【[】:表示一维数组 。 【[[】:表示二维数组 。 【L】:表示一个对象 。 【java.lang.String】:表示对象的类型 。 【@】:后面表示该对象的hashCode。 因此访问数组元素时,需要另外使用for循环遍历数组,不能直接通过数组名访问所有数组元素。 "没有人是天生强大,耐抗折磨和压力的。" 来源: https://www.cnblogs.com/yanggb/p/11504471.html

前端之JavaScript

守給你的承諾、 提交于 2019-11-29 13:30:48
1 | 0 JavaScript概述 1 | 1 ECMAScript和JavaScript的关系 1996年11月,JavaScript的创造者--Netscape公司,决定将JavaScript提交给国际标准化组织ECMA,希望这门语言能够成为国际标准。次年,ECMA发布262号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为ECMAScript,这个版本就是1.0版。 该标准一开始就是针对JavaScript语言制定的,但是没有称其为JavaScript,有两个方面的原因。一是商标,JavaScript本身已被Netscape注册为商标。而是想体现这门语言的制定者是ECMA,而不是Netscape,这样有利于保证这门语言的开发性和中立性。 因此ECMAScript和JavaScript的关系是,前者是后者的规格,后者是前者的一种实现。 1 | 2 ECMAScript的历史 年份 名称 描述 1997 ECMAScript 1 第一个版本 1998 ECMAScript 2 版本变更 1999 ECMAScript 3 添加正则表达式 添加try/catch ECMAScript 4 没有发布 2009 ECMAScript 5 添加"strict mode"严格模式 添加JSON支持 2011 ECMAScript 5.1 版本变更

第一个只出现一次的字符位置

我的梦境 提交于 2019-11-29 13:14:53
在一个字符串中找到第一个只出现一次的字符,并返回它的位置。 Input: abacc Output: b 解题思路: 最直观的解法是使用 HashMap 对出现次数进行统计,但是考虑到要统计的字符范围有限,因此可以使用整型数组代替 HashMap,从而将空间复杂度由 O(N) 降低为 O(1)。 public class Solution { public int FirstNotRepeatingChar(String str) { int[] cnts = new int[256]; //创建数组 for(int i =0;i<str.length();i++) //遍历 cnts[str.charAt(i)]++; for(int i =0;i<str.length();i++) if(cnts[str.charAt(i)] == 1) return i; return -1; } } 来源: https://my.oschina.net/u/3973793/blog/3105874

SHELL脚本学习笔记

浪尽此生 提交于 2019-11-29 12:19:51
SHELL脚本学习笔记 创建可执行的 SHELL 脚本 touch shell.sh chmod +x shell.sh # 授权:可执行 内建函数 # 打印 echo # 不换行打印 echo -n 变量 # 变量命名规范:字母、数字和下划线 # 取变量值: ${variable_name} 或者 $variable_name # 获取命令结果的值:$(command_name) 或者 command_name # 定义只读变量 readonly variable_name # 删除变量(不能删除只读变量):unset variable_name # SHELL变量作用域:局部变量、全局变量、环境变 SHELL 特殊变量 变量 含义 $0 当前脚本的文件名 $n (n>=1) 传递给脚本或者函数的参数。n 表示第一个参数,${10}… $# 传递给脚本或者函数的参数个数 $* 传递给脚本或者函数的所有参数 $@ 传递给脚本或者函数的所有参数, $? 上个命令的退出状态,或者函数返回值 $$ 当前SHELL脚本进程 ID 当它们被双引号" "包含时,就会有区别了: "$*"会将所有的参数从整体上看做一份数据,而不是把每个参数都看做一份数据。 "$@"仍然将每个参数都看作一份数据,彼此之间是独立的。 函数定义 # 函数定义 # 定义 Shell 函数时不能带参数 # function

201871010132——张潇潇《面向对象程序设计JAVA》第二周学习总结

你离开我真会死。 提交于 2019-11-29 08:23:22
项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p/11475377.html 作业学习目标 适应老师教学方式,能按照自主学习要求完成本周理论知识学习; 掌握Java Application程序结构; 掌握Java语言的数据类型与变量; 学会使用Java运算符构造各类表达式; 掌握Java Application输入输出技术; 掌握Java流程控制技术(分支、循环);(重点) 掌握Math类、String类的用法。(难点) 随笔博文正文内容: 第一部分:结合 Java 和 C 基础语法的异同比较,总结本周理论知识( 30 分) 3.1 概览 大小写敏感。 访问修饰符:程序其他部分对这段代码的访问级别。 类是构建所有 java 应用程序和 applet 的构建块。 Java 应用程序的全部内容必须放置在类中。 类命名规范:大写字母开头。多个单词首字母均大写的骆驼命名法 CamelCase 。 源代码的文件名必须与公共类的名字相同,并用 .java 作为扩展名。 Java 虚拟机规范 http://docs.oracle.com/javase/specs/jvms/se7/html Java 中所有函数都属于某个类的方法

JS基础知识大全

与世无争的帅哥 提交于 2019-11-29 07:30:34
JS基础知识 基本语法 *switch循环(设置表达式 x(通常是一个变量) 随后表达式的值会与结构中的每个 case 的值做比较。如果存在匹配,则与该 case 关联的代码块会被执行。请使用 break 来阻止代码自动地向下一个 case 运行) 不进行类型转换 var x; switch(x){ case true:console.log("x类型转换") ; default:console.log("x没有发生类型转换"); }//case没有发生类型转换 switch语句执行严格相等 *三元运算符 var a=1; console.log(a?"a has a value":"a not has a value");//a has a value //利用三元运算符,输出相应提示 n=2; var msg="数字"+n+"是"+(n%2===0?"偶数":"奇数");//偶数 console.log(msg);*/ //利用三元运算符,在字符串之间插入不同的值 *break和continue语句 会自动结束或跳出代码块 var num = 0; for (var i = 0 ; i < 10 ; i++){ console.log("i="+i); for (var j = 0 ; j < 10 ; j++){ console.log("j="+j); if( i == 5

牛客 C++刷题day1

孤街醉人 提交于 2019-11-29 04:59:35
1:数组指针和数组首地址的区别 定义了数组a[4],其中a,&a,&a[0]都是数组的起始地址。但是步长有区别,也就是指向的类型不同 a等同于a+0等同于&a[0],是指向数组第一个元素的指针,步长为指向的元素所占用的地址空间为sizeof(int) 。 &a也是指向数组第一个元素的指针,但其意义是指向整个数组的首地址,指向的类型为整个数组,所以其步长为4*sizeof(int) 2:scanf函数详解 、 格式字符串 格式字符串的一般形式为: %[*][输入数据宽度][长度]类型 其中有方括号[]的项为任选项。各项的意义如下。 1) 类型 表示输入数据的类型,其格式符和意义如下表所示。 格式 字符意义 d 输入十进制整数 o 输入八进制整数 x 输入十六进制整数 u 输入无符号十进制整数 f或e 输入实型数(用小数形式或指数形式) c 输入单个字符 s 输入字符串 2) “*”符 用以表示该输入项,读入后不赋予相应的变量,即跳过该输入值。如: scanf ( "%d %*d %d" ,&a ,&b ); 当输入为:1 2 3时,把1赋予a,2被跳过,3赋予b。 3) 宽度 用十进制整数指定输入的宽度(即字符数)。例如: scanf ( "%5d" ,&a ); 输入12345678只把12345赋予变量a,其余部分被截去。又如: scanf ( "%4d%4d" ,&a ,&b

ES6新增常用属性

会有一股神秘感。 提交于 2019-11-29 01:58:14
1.声明变量 let/const let:用来声明变量,类似于var,但是使用let有以下特性: (1).不存在变量提升 eg: // var 的情况 console.log(foo); // 输出undefined var foo = 2; // let 的情况 console.log(bar); // 报错ReferenceError let bar = 2; (2).暂时性死区 eg: var tmp = 123; if (true) { tmp = 'abc'; // ReferenceError let tmp; } (3).不允许重复声明,同一作用域内只能声明一次 eg: // 报错 function func() { let a = 10; var a = 1; } // 报错 function func() { let a = 10; let a = 1; }因此,不能在函数内部重新声明参数。 function func(arg) { let arg; } func() // 报错 function func(arg) { { let arg; } } func() // 不报错 (4).新增的块级作用域 function f1() { let n = 5; if (true) { let n = 10; } console.log(n); // 5

有一个字符数组的内容为:"student a am i", 请你将数组的内容改为"i am a student".

北战南征 提交于 2019-11-28 16:10:37
/* 有一个字符数组的内容为:“student a am i”, 请你将数组的内容改为"i am a student". 要求: 不能使用库函数。 只能开辟有限个空间(空间个数和字符串的长度无关)。 student a am i i ma a tneduts i am a student */ #include<stdio.h> #include<stdlib.h> //交换函数 void Swap(char* start, char* end){ char temp; --end; while (start < end){ //若start指向地的址小于end指向的地址 temp = *start; //将start指向的内容赋给temp *start = *end; //将end指向的内容赋给start *end = temp; //将temp指向的内容赋给end ++start; //start向后移 --end; //end向前移 } } //实现函数 void Function(char str[],int len){ char* start; char* end; start = str; //start指向字符串str的开头 end = str + len - 1; //end指向字符串str的末尾'\0' Swap(start, end); //调用交换函数