程序员求职面试宝典真题、技巧及职业-第10章字符串数组_第1页
程序员求职面试宝典真题、技巧及职业-第10章字符串数组_第2页
程序员求职面试宝典真题、技巧及职业-第10章字符串数组_第3页
程序员求职面试宝典真题、技巧及职业-第10章字符串数组_第4页
程序员求职面试宝典真题、技巧及职业-第10章字符串数组_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

字符串及数字符串类型是开发应用程过程中最常用到的类型之NETFramework类库中提供了强大的字符串处理功能,最stringStringBuilder,对字符串的常用操作的处理,C#提供了一种有序的、能够多个相同类型变量的它可以在内存中连续的存放数据,以便能够快速其中面试1:判断字符串为空的几种方考点分析空字符使用“""string.Lengthstring.IsNullOrEmpty字符串为空字串为字的为nul判主下string.IsNullOrEmpty方法来判断字符串为空可分为空字符串和空值两种情况,具体答案如下判断空字符串主要有以下4使用“""string.Lengthstring.IsNullOrEmpty判断字符串为空值主要有以下两种方null来判断string.IsNullOrEmpty面试2:空字符串与字符串为空值的区考点分析串值(即赋值为nul的字符串在使用中极易。这是由求职者对空字符串的理解不够准确造成的,当一个字符串被赋值为nul时,它并没有被分配任何的内存空间,而只是了一个字符串变量;但空字符串却拥有内存空间,它只是长度为0参考答案字符串为空值(stringstr=null)是不给它分配内存空间,而空字符串(stringstr="")是给它分配内存空间,但它的长度为0。面试3:请写出string类的10个常用方考点分析在#ncode一个应用程序都离不开对字符串的操作,因此掌握和使用字符串的操作就显的比较、查找、插入、删除、替换、求子串、移除首尾字符、合并与拆分及参考答案String类常10方法和功能说明如下Equals()Split():以…分割每个字、符为string[]数组IndexOf():返回指定字符的索引Concat():连接,相当于’+’号Trim()ToUpper()ToLower()StartsWith():开头字符是否匹配SubString()ToCharArray():转换为char[]数组面试4:关于移除字符串中的空本题要求实现对一个字符串的处理,首先将该字符串的首尾空格都去掉,如果字符串中间还有连续空格的话,仅保留一个空格(即允许字符串中间有多个空格,但连续的空格数不可超过一个考点分析若要移除字符串的首尾空格,则可以调用string类的Trim方法;若要移Regex.Replace方法。这两种方法的具publicstring 参数说返回值:移除字符串首部和尾部的一个或多个空格后的新字符串该方法实现在指定的输入字符串内,使用指定的替换字符串替换与某个正则表达式模式匹配的字符串。该方法有多种重载形式,其中常用的语法格publicstaticstringReplace(stringinput,stringpattern,string RegexReplace方法的参数说明如10.1所示10.1RegexReplacestringinputStr="x xx x";面试5:是否可以继承String类考点分析查seaed关和ing类在C被组#把字符串当做一种基本数据类型来对待,这种数据类型被定义为rng类,别名ng。使用它程序员可以方便地实现字符串的、连接等。用seaed关键字的类是密封类,不能再派生出新的子类,即不能作为父类被继承。而ng类有seaed参考答案String类是密封类,故不可以被继承面试6:String和StringBuilder有什么区别考点如果一个对象被为一个string类的实例,那么这个对象中的字string类型不同,StringBuilder类型表示值为可变字符序列的类似字符串的对象。之所以说值是可变的,是因为可以对StringBuilder对象进行追加、移除、替换或插入字符来对其进行修改,这点与String类型恰恰相反。大多数修改StringBuilder实例的方法都返回对同一实例的,由于返回的是对实例的,因此可以调用该的方法或属性,如下面的代码。参考答案System.String是不可变的字符串。System.StringBuilder存放了一个可变面试7:String和string的区别是什么考点分析别的。事实上,StringstringC#中的类using别名指令用于为一个命名空间或类型指定一个别名(即标示参考答案时程序员可以string也可以String,但在一个系统中应尽可能使用同一面试8:如何实现用英文格式输出月份和星期考点分析本题考查日期与时间的格式化输出C#语言中,日期与时间的格式化输出方式有多种,具体10.2所示。10.2dhHMsy根据上表的日期和时间格式,可以使用n.orat方法格式化字符串文样式,如果想要输出英文形式的月份和星期,则需用sem.Gobazaion命名空间。比如,下面的代码实现输出英文样式的月份DateTimedt=newDateTime(2002,4,25,12,36,40);System.Globalization.DateTimeFormatInfodti=newDateTimedt=newDateTime(2002,4,25,12,36,40);System.Globalization.DateTimeFormatInfodti=newstrings=string.Format(dti,"{0:yyyy年MM月dd日hh:mm:ssdddd,MMMM}",dt); 运行结果为:2002042512:36:40DateTimedt=newDateTime(2010,1,6,12,36,40);System.Globalization.DateTimeFormatInfodti=newstringDateTimedt=newDateTime(2010,1,6,12,36,40);System.Globalization.DateTimeFormatInfodti=newstrings=string.Format(dti,"{0:yyyy年MM月dd日hh:mm:ssdddd,MMMM}",dt); 面试9:怎样实现将字符串转化为日期格式高频考点考点分析若需要将字符串转化为日期格式,可考虑使DateTimeParseExact方3种重载形式,其中常用的语法格式如下:publicstaticDateTimeParseExact(strings,stringformat,IFormatProvider DateTimeParseExact方法的参数10.3所示10.3DateTimeParseExactsstringstringstrDate="2015-12- ine("ine("ParseExact参考答案方法实现将日期和时间的指定字符串表示形式转换为其等效的DateTime。面试10:简述如何获得多种日期格考点分析日期的格式有很多种,比如,短日期格式、长日期格式、自定义格式等aeieaeie类型的otngpublicstringToString(string 参数说formatDateTime格式字符串,该参数在格式化日期时常用的格式说明符如表10.4所示:10.4formatdDtf完整日期时间模式(短时间(D)和短时间(t)模式的组合,由空Y,DateTime比如,下面的代码实现使用ToString方法得到多种日期格式DateTimeDateTimedt=ine("取中文日期显示—年月日时分:"+ine("取当前时分(格式为:14:24):"+dt.ToString("t")); ine("取当前年月日时分秒(格式为:2003923142413):"+ ine("取当前年月日时分秒(格式为:2003-9-2314:24:13):"+dt.ToString("yyyy/MM/ddhh:mm:ss")); //自定义“yyyy/MM/ddhhmm:ss”格式参考答案DateTimeDateTime类型的ToString方法来格式化日期,通过调整该方法的format参数值,就可字符串的验面试11:常见的字符串验证方法有几种考点分析Char.Isnumber方法验证、使用异常处理验证、比较ASCII码验证,下面介绍号码等,这是其它方法做不到的,而且在格式需求改变时,只要修改正则表达式Char.IsNumeric方相对于其它方法而言,这是最应该避免使用的法,在有异常抛出参考答案验证字符串比较常见的方法有,使用正则表达式验证、调用面试12:如何使用正则表达式判断字符串为日期格式考点分析最常见的日期格式有:“yyyy/MM/dd”、“yyyy-MM-dd”、“yyyy年MMdd3种,它们都对应着不同的正则表达式。下面通过一段代码来分别描述这3种日期格式的正则表达式验证情况。publicpublicboolValidateDate1(stringinput)yyyy/MM/dd{returnRegex.IsMatch(input,}//验证字符串是否为{return"\\b(?<year>\\d{2,4})-(?<month>\\d{1,2})-}publicboolValidateDate3(stringinput)yyyyMM月dd{}参考答案验证最常见的3种日期格式的正则表达验证“yyyy/MM/dd验证“yyyy-MM-dd”面试13:如何使用正则表达式验证数字或字母考点分析在软件开发中,经常需要验证输入的字符串为纯数字或纯字母的情况,本题要求使用正则表达式来验证输入的字符串类别,包括验证纯数字字符串, //{MessageBox.Show("输入的是数字!","信息提示}{","},{","}{","}参考答案使用“^[0-9]*$”表达式来验证数字;使用“^[A-Za-z]+$”表达式来证字母面试14:数组和string是否都有Length这个方考点分析本题是考查数组和字符串的方法和属性。方法用于完成指定的功能,它于ng类和array类来说,长度enth)是对其对象状态的一种描述,它不涉及到数据nh参考答案数组string都没Length方法,只Length属性面试15:二维数组中指定元素的下面定义并初始化了一个二维整型数组,仔细查看后,请选myArray3[2][2]元素的值是 )int[][]myArray3=newint[3][]{newint[3]{3,6,2},newint[5]{6,9,4,8,3},new A)9B)2C)6D)考点本题考查二维交错数组的定义,#支持两种类型的二维数组,一种是二维矩形数组,另一种是二维交错数组,本题中定义的是一个二维交错数组。交错数组相当于一维数组的每一个元素又是一个数组,因此也可以称之为“数组的数组“。交错数组的每行的列数可以相等也可以不相等,它可以在数组时对数组的元素进行初始化,也可以在以后对其进行初始化,但此new0以myAray3[2]2]实际上就是指第三行第三个元素的值,而该数组的第三行数组元素的个数既可以在 参考答案面试16:如何实现数组间元素的拷贝到一维数组a2中。考点分析这道题有两种做法:第一,使用循环依次把数a1数组a2中;第二,使ArrayCopy()方法把数组a1中的指定元素到a2中。参考答案方法一,使用for循环对数组a2中的指定元素进行赋值int[]int[]a1=new for(int{a2[i-6]=}方法二,调用Array类的Copy()方法实现数组间元素的拷贝int[]int[]a1=new int[]a2=newint[10];数组排面试17:列出几种常用的数组排序方考点分析泡法、直接插入法和选择排序法等;也可以用Array类的Sort方法对数组进行冒泡冒泡排序的过程很简单,首先将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序,则将两个记录交换,然后比较第二个记录和第3n1n过比较为止,上述过程称为第一趟冒泡排序,执行n1次上述过程后,排序直接插入排序是一种最简单的排序方法,其基本操作是将一个记录插入到已排好序的有序表中,从而得到一个新的、记录数增1选择排序的基本思想是,每一趟n个记录中选取关键字最小的记录作为有序序列的第I个记录,并且令I1n-1n-1趟选择操作。ArraySort方常用的数组排序方法包括:冒泡法、直接插入法和选择排序法,另外,也可以用rrayot面试18:使用冒泡法实现对数组元素的排“87,84,78,68,90,76,89,82,85,79”进行排序。考点分析冒泡排序的基本思想为:依次比较相邻的两个数,将大数放面,小12比较第2个数和第3(2个数和第3个数的交换,使得第1个数不再大于第2个数),将大数放前,成排序,使用冒泡排序法排序的过程如图10.1所示。10.1参考答案staticstaticvoidMain(string[]{int[]arr=newint[]{87,84,78,68,90,76,89,82,85,79};//定义一个一维数组,并赋值 foreach(intminarr) intj,for(inti=0;i<arr.Length-1;{j=i+if(arr[i]>{temp=arr[i];arr[i]=arr[j];arr[j]=temp;gotoid;}if(j<arr.Length-{goto}} for

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论