4.数组和字符串
C#_数组与字符串_4

练习
• 1.TestArray.CS 命令行参数 • 2.从命令行读入一些列随机数,排序(选择排序 )。 • 3.引用类型排序。TestDateSort.cs
二维数组
• 二维数组可以看成以数组为元素的数组。 • C#中多为数组的声明和初始化按从高维道低维德 顺序进行,例如: • int a[][] = new int [3][]; • a[0] = new int[2]; • a[1] = new int[4]; • a[2] = new int[3]; • int t1[][] = new int[][4] //非法
C#数组
一维数组声明
• 一维数组声明方式:
– type var[]; 或 type[] var;
• 例如:
– int a1[]; int[] a2; – double b[]; – Person[] p1;
• C#语言中声明数组时不能指定其长度
– 例如:int a[5]; //非法
数组对象的创建
二维数组举例
数组的拷贝
• 使用C# System.Array类的静态方法 • public static void copy(Object src,Object dest,int length) • 可以用于数组src拷贝到目标数组从第一个元素项 开始的length个位置
• 如果源数据数目超过目标数组边界会抛除越界异 常 TestArrayCopy.cs
元素为引用数据类型的数组
元素为引用数据类型的数组
• 注意:元素为引用数据类型的数组中的每个元素都 需要实例化。
2004 4
1
2004 null null null 4 4 2 2004
days
字符数组和字符串

* ** ** ** *
}
main() a
{ char a[5]; int i=0;
b
while(i<=4)
c
{ scanf(“%c”,&a[i]);
c
i
{ char a[5]; int i=0
跳格分隔。因此不要试图利用scanf函数从键盘输入
How are you? 赋给一个字符串。
1.5 字符数组处理函数
1.字符串输入gets()函数 使用形式: gets(字符数组) 功能:从终端输入一个字符串(直到回车键) 到字符数组中。
例如:char str[20]; gets(str); 若从键盘输入:Hello World! 则将字符串“Hello World!”送到字符数组str中。
输出:10 char str[80]={“ab\n\0y\012/\\\””} ; printf(“%d”,strlen(str)) ;
输出:3
4.字符串连接strcat()函数
使用形式: strcat(字符数组1,字符串2)
如:“china” 占内存6个字节,但字符串长度 是5 在C语言中用字符数组来处理字符串,每个 元素存放一个字符型数据。
字符型数组可用一般数组的初始化方式初始化 外,还可以使用字符串常量初始化:
如:char message[]={“Hello”}; √ 或 char message[]=“Hello”; √
说明:字符数组本身并不要求它的最后一个元素一
定是‘\0’,例如:char ch[2]={‘A’, ‘B’};是合法的。 当定义字符数组用字符串常量赋初值时,最后有一 个元素其值为‘\0’。为了使处理方法一致,在字符 数组中也常常人为地加上一个值为‘\0’的元素。
字符串和数组的关系

字符串和数组的关系
嘿,大伙!今天咱来聊聊字符串和数组的关系。
有一次我玩拼图游戏,这就让我想到了字符串和数组。
你看啊,字符串就像是一幅完整的拼图画面,是一个连续的整体。
比如说“Hello”这个字符串,它就是由一个个字符组成的一个整体画面。
而数组呢,就像是装拼图块的盒子。
盒子里可以放各种不同的东西,就像数组可以存放各种不同的数据类型。
如果把字符串拆分开,每个字符就像是一块拼图块,这些字符组成的集合就有点像一个字符类型的数组。
反过来呢,如果把数组里的元素按照一定的顺序排列好,也可以组成类似字符串的东西。
咱在编程的时候,有时候就需要把字符串拆成数组来处理,就像把拼图拆成小块来摆弄。
也有时候需要把数组组合成字符串,就像把拼图块拼成一幅完整的画。
所以啊,字符串和数组就像是一对好搭档,互相配合着完成各种任务。
以后咱编程的时候,就可以多想想它们之间的关系,让咱的程序更厉害。
好了,希望大家都能搞清楚字符串和数组的关系,编程更顺手。
拜拜!。
js中数组与字符串的常用方法整理。

js中数组与字符串的常⽤⽅法整理。
数组⽅法:pop() 、push() 、shift() 、unshift() 、 reverse() 、 sort() 、 splice() 会改变原数组⽅法名对应版本功能原数组是否改变concat()ES5-合并数组,并返回合并之后的数据njoin()ES5-使⽤分隔符,将数组转为字符串并返回npop()ES5-删除最后⼀位,并返回删除的数据yshift()ES5-删除第⼀位,并返回删除的数据yunshift()ES5-在第⼀位新增⼀或多个数据,返回长度ypush()ES5-在最后⼀位新增⼀或多个数据,返回长度yreverse()ES5-反转数组,返回结果yslice()ES5-截取指定位置的数组,并返回nsort()ES5-排序(字符规则),返回结果ysplice()ES5-删除指定位置,并替换,返回删除的数据ytoString()ES5-直接转为字符串,并返回nvalueOf()ES5-返回数组对象的原始值nindexOf()ES5查询并返回数据的索引nlastIndexOf()ES5反向查询并返回数据的索引nforEach()ES5参数为回调函数,会遍历数组所有的项,回调函数接受三个参数,分别为value,index,self;forEach没有返回值nmap()ES5同forEach,同时回调函数返回数据,组成新数组由map返回nfilter()ES5同forEach,同时回调函数返回布尔值,为true的数据组成新数组由filter返回nevery()ES5同forEach,同时回调函数返回布尔值,全部为true,由every返回true nsome()ES5同forEach,同时回调函数返回布尔值,只要由⼀个为true,由some返回true nreduce()ES5归并,同forEach,迭代数组的所有项,并构建⼀个最终值,由reduce返回n reduceRight()ES5反向归并,同forEach,迭代数组的所有项,并构建⼀个最终值,由reduceRight返回n详解:1. concat() : 合并数组,可以合并⼀个或多个数组,会返回合并数组之后的数据,不会改变原来的数组;var str1 = [12,2,"hello"];var str2 = ["world"];console.log(str1.concat(str2)); //[12, 2, "hello", "world"]console.log(str1); //[12,2,"hello"];2. join() : 将数组转为字符串并返回转化的字符串数据,不会改变原来的数组;注意:()中⽤双引号包括⾃⼰想⽤的分隔符,默认为逗号,这⾥⽅便观察,我⽤了-var str1 = [12,2,"hello"];var str2 = ["world"]; console.log(str1.join("-")); //12-2-hello console.log(str1) //[12, 2, "hello"]3. pop() : 删除数组的最后⼀位,并且返回删除的数据,会改变原来的数组var str1 = [12,2,"hello"];console.log(str1.pop() //helloconsole.log(str1); //[12, 2]4.push() : 在数组的最后⼀位新增⼀个或多个数据,并且返回新数组的长度,会改变原来的数组var str1 = [12,2,"hello"];var str2 = [43,2,"test"];console.log(str1.push("你好")); //4console.log(str2.push("hello","world")); //5console.log(str1); //[12, 2, "hello","你好"]console.log(str2); //[43, 2, "test","hello", "world"]5. shift () :删除数组的第⼀位数据,并且返回新数组的长度,会改变原来的数组var str1 = [12,2,"hello"];console.log(str1.shift()); //12console.log(str1); //[2,"hello"]6. unshift() :在数组的⾸位新增⼀个或多数据,并且返回新数组的长度,会改变原来的数组注意:unshift()⽅法返回的数据是新数组的长度,它增加的数据可以是⼀个也可以是多个,可以理解为增加⼀连串的数据,var str1 = [12,2,"hello"];var str2 = [43,2,"test"];console.log(str1.unshift("你好")); //4console.log(str2.unshift("hello","world")); //5console.log(str1); //["你好", 12, 2, "hello"]console.log(str2); //["hello", "world", 43, 2, "test"]7. reverse() :将数组的数据进⾏反转,并且返回反转后的数组,会改变原数组。
《计算机c语言》课件

关闭文件:使用fclose()函 数,关闭打开的文件
程序调试技巧和方法
单步调试:逐行执行代码, 观察变量值和程序状态
异常处理:使用try-catch 语句捕获和处理异常,避免
程序崩溃
代码审查:与他人共同审查 代码,发现潜在问题
断点调试:设置断点,逐 步执行代码,观察变量值
和程序状态
打印调试:在关键位置打 印变量值,观察程序状态
数组的定义:使用关键字 "int[]"、"char[]"等定义数
组
添加标题
数组的访问:通过数组下标 访问数组元素,下标从0开始
添加标题
数组的修改:可以通过数组 下标修改数组元素
数组的查找:可以使用查找 算法在数组中查找元素,如
二分查找、顺序查找等
字符串的处理和操作
字符串的定义:由字符组成 的序列,用双引号括起来
嵌套控制结构
概念:在一个控制 结构中嵌套另一个 控制结构
应用场景:循环嵌 套、条件嵌套等
语法:使用{}、() 等符号表示嵌套关 系
示例:for(int i=0;i<10;i++){if(i %2==0){...}}
函数和程序结构
函数的定义和调用
函数的定义:函数是完成特定任务的独立代码块,可以重复使用。 函数的调用:在程序中使用函数名和参数列表来调用函数。 函数的参数:函数可以接受参数,参数可以是变量、常量或表达式。 函数的返回值:函数可以返回一个值,返回值可以是任何类型的数据。
数据类型和运算 符
变量和常量
变量:在程序运行过程中可以改变的值
常量类型:整型、浮点型、字符型、布 尔型等
常量:在程序运行过程中不能改变的值
gjm_Java第5章( 数组与字符串)

2、二维数组的动态初始化 法1:直接为每一维分配空间,格式如下: arrayName = new type[arrayLength1][arrayLength2]; 举例: int a[ ][ ] = new int[2][3]; a[0][0]=1; a[1][2]=6;
27
法2:从最高维开始,分别为每一维分配空间: arrayName = new type[arrayLength1][ ]; arrayName[0] = new type[arrayLength20]; arrayName[1] = new type[arrayLength21]; … arrayName[arrayLength1-1] = new type[arrayLength2n];
30
5.3.3二维数组元素的引用
引用方式为: arrayName[index1][index2] 例如: num[1][0];
31
Java的多维数组不一定是规则的矩阵形式,如 图所示。
1 m行 5 9 2 6 10 7 11 8 n列
图 Java语言的二维数组不一定是矩形
如:int [] [] x; x=new int [3] [ ];
int x[ ] = new int [10]; 其中x[0]代表数组中第1个元素,x[1]代表第2个 元素,x[9]为第10个元素,也就是最后一个元素。
11
【例5.1】声明一个一维数组,其长度为 5,利用循环对数组元素进行赋值,然后再利 用另一个循环逆序输出数组元素的内容。程 序代码如下:
12
//app5_1.java 一维数组 【例5.1】续 public class app5_1 { public static void main(String args[ ]) { int i; int a[]; //声明一个数组a a=new int[5]; //分配内存空间供整型数组a使用,其元素个数为5 for(i=0;i<5;i++) //对数组元素进行赋值 a[i]=i; for(i=a.length-1;i>=0;i--) //逆序输出数组的内容 System.out.print(“a[”+i+”]=”+a[i]+”,\t”); System.out.println(“\n数组a的长度是:”+a.length); } } 13
Java字符串与数组
Java字符串与数组问题及答案来源⾃《Java程序员⾯试笔试宝典》第四章 Java基础知识 4.5字符串与数组1、字符串创建与存储的机制是什么?Java中字符串声明与初始化主要有两种情况:(1)String s1 = new String("abc")与String s2 = new String("abc")语句执⾏String s1 = new String("abc")语句,字符串池中不存在"abc",则会创建⼀个字符串常量"abc",并将它添加到字符串常量池中,然后new String()会在堆中创建⼀个新的对象,s1指向堆中的String对象紧接着创建String s2 = new String("abc")语句,因为字符串常量池中已经有了字符串常量"abc",所以不会再创建"abc",直接new String()在堆中创建⼀个新的对象,然后使⽤s2指向这个对象s1与s2指向堆中的不同String对象,地址⾃然也不相同(2)String s1 = "abc"语句与String s2 = "abc"语句在JVM中存在着⼀个字符串常量池,其中保存了着很多String 对象,s1,s2引⽤的是同⼀个常量池中的对象。
当创建⼀个字符串常量时,例如String s1 = "abc",会⾸先在字符串常量池中查找是否已经有相同的字符串被定义,若已经定义,则直接获取对其的引⽤,此时不需要创建字符串常量"abc",如果没有定义,则⾸先创建字符串常量"abc",然后把它加⼊到字符串池中,再将引⽤返回例⼦1:String s1 = new String("abc"); // 先查找常量区有⽆"abc"常量,若⽆则将其"abc"添加到常量区,再在堆中创建对象,将s1指向堆中的对象String s2 = new String("abc"); // 发现在常量区已经有了"abc",在堆中创建对象,将s2指向堆中的对象例⼦2:String s1 = "abc"; // 在常量区⾥⾯创建⼀个"abc"字符串对象,s1获取对其的引⽤String s2 = "abc"; // 发现在常量区已经有了"abc",s2直接获取对其的引⽤引申 - 对于String类型的变量s,赋值语句s=null和赋值语句s=""有什么区别?s=null,是指s不指向任何⼀个字符串;s=""中的s指向空字符串笔试题 - new String("abc")创建了⼏个对象?⼀个或两个,如果常量池中原来就有"abc",那么只创建⼀个对象,否则创建两个对象2、==、equals和hashCode有什么区别?==:是运算符,⽤于⽐较两个变量是否相等。
c语言字符串数组和字符串字面量
c语言字符串数组和字符串字面量C语言字符串数组和字符串字面量在C语言中,字符串是一种常见的数据类型,用于存储和处理文本信息。
字符串数组和字符串字面量是C语言中用来表示和操作字符串的两种主要方式。
本文将详细介绍这两种方式的特点、用法以及注意事项。
1. 字符串数组字符串数组是一种由字符组成的数组,用于存储和操作字符串。
其定义方式如下:```cchar str[20] = "Hello, world!";```其中,str是一个字符数组,长度为20,可以存储19个字符和一个结尾的空字符'\0'。
由于C语言中没有提供专门的字符串类型,所以通常使用字符数组来表示字符串。
字符串数组可以进行各种操作,比如拷贝、连接、比较等。
下面是一些常见的操作示例:- 拷贝字符串:使用strcpy函数可以将一个字符串拷贝到另一个字符串数组中。
```cchar dest[20];char src[10] = "Hello";strcpy(dest, src);```- 连接字符串:使用strcat函数可以将一个字符串连接到另一个字符串数组的末尾。
```cchar str1[20] = "Hello";char str2[10] = ", world!";strcat(str1, str2);```- 比较字符串:使用strcmp函数可以比较两个字符串的大小关系。
```cchar str1[10] = "Hello";char str2[10] = "World";int result = strcmp(str1, str2);```除了以上操作外,还可以使用字符串数组进行遍历、截取等操作。
需要注意的是,对字符串数组进行操作时,需要保证目标数组有足够的空间,以免发生数组越界的错误。
2. 字符串字面量字符串字面量是一种直接在代码中写出的字符串,也称为字符串常量。
第4章:数组和字符串
4.1.1一维数组
2. 创建一维数组
创建一维数组就是为数组分配存储空间,需指定数组长度。 数组创建后,数组名就标识用于存储数组元素的存储空间(引用)。 创建一维数组的3种方法:
(1) 先声明后创建
数组元素类型 数组名[]; 数组名 = new 数组元素类型[元素个数] ; 如:int intArray []; intArray = new int[5];4.2.3 字符串基本操作
字符串比较的注意事项:
表达式 str1.equals(str2)与表达式 str1==str2 的差异 在于:
• 前者表示所引用的两个字符串的内容是否相同, • 后者表示str1 与 str2是否引用同一个对象。 【实战编程技巧:如何避免潜在的空指针异常】
练习题
4.1 数组
4.2 字符串
4.1 数组
数组是将一组相同类型的数据顺序存储,组成的一 种复合数据类型。 数组的特点:
数组中的所有元素的数据类型相同。 数组中的元素连续顺序存储。 数组中每个元素按存储顺序对应一个下标,下标从0开始顺序编号 ,引用数组元素通过数组名和它的下标确定。 数组有一维数组和多维数组之分,数组元素的下标个数确定数组的 维数。
练习题
【真题练习】设有数组a和b的定义如下: int[]a={1,2,3}; int[]b={4,5,6} …… 执行以下代码“a=b;”,除了完成赋值操作之外,引起 系统额外要做的工作是_________。
《c++程序设计》第4章 数组
赋给另一个字符数组,只能用字符串复制函数来处理。例如下面操作是非法的: str2="C++ program"; str1=str2;
4.1 数组的定义与使用
4.1.1 一维数组的定义和使用
1.一维数组的定义与初始化赋值 (1)一维数组的定义
定义格式为:
〔存储类型〕 <类型> <数组名>[<常量表达式>]; 例:int a[10];
表示定义一个名为a的整型数组,有10个元素,分别为a[0]、a[1]、 a[2]、a[3]、a[4]、a[5]、a[6]、a[7]、a[8]、a[9] 。
int a[ ][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; 或: int a[ ][4]={1,2,3,4,5,6,7,8,9,10,11,12};
二维数组的初始化赋值
② 给数组的部分元素赋初值 给数组的部分元素赋初值的方法与给数组的所有元素赋初值的方法 类似。
3.字符串连接函数strcat()
格式:strcat(<字符数组1>,<字符串2>) 功能:将字符串2连接到字符数组1中的字符串后,其结果存放在字符数组1中。 例如:
char str1[30]="I am a "; char str2[]="student."; strcat(str1,str2); 则字符数组1的内容为"I am a student."。 说明: (1)字符数组1必须是字符数组名,字符串2可以是字符数组名,也可以是字符串常量; (2)字符数组1必须足够大,以便容纳连接后的新字符串; (3)连接时字符串1之后的'\0'取消,只在新字符串最后保留一个'\0'。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第四讲数组打印本页和字符串1 概述什么是数组?除了基本数据类型,Java还提供一种导出类型:数组。
数组是相同类型的数据按顺序组成的一种复合数据类型,通过数组名和下标,可以使用数组中的数据。
下标从0开始。
数组是所有编程语言中常用的数据结构。
为什么要数组呢?我们来举一个例子。
假设我们需要表示一个班50个人的数学成绩,要求求出平均成绩。
如果没有数组,我们需要用前面学过的声明变量的方法,声明50个变量,写50次加法运算!数组可以大大地简化类似的问题!我们只要声明一个长度为50的整型数组,结合上一讲我们学过的循环语句,就可以很方便地解决这个问题!在以前的编程语言比如C或者C++中,字符串也使用数组来表示的:字符串是字符数组!所以字符串与数组有着天然的联系。
但是在Java中,提供了一种更方便的表示字符串的方法:用一个String类来表示。
类是面向对象的语言特有的概念,对于初次接触面向对象技术的人来说,比较难理解。
所以,这一讲,我们将学习表示字符串的String类,也对类的使用有一个粗略的了解,作为下一讲详细学习类的准备。
需要指出的是,C语言里的其他两种导出类型:结构体和共用体,在Java里已经被取消。
下面,我们来学习数组和字符串。
2 数组的声明、创建和初始化2.1 数组的声明:声明数组,包括声明数组的名字、数组包含的元素的数据类型。
数组可以一维的,也可以是二维或者多维的。
举例来说:一个班有50个人,我们用一个长度为50的一维数组表示;如果要表示每个同学的五门高考成绩,那我们就需要用一个第一维长度为50,第二维长度为5的二维数组。
声明一维数组有两种格式:数组元素类型数组名[ ];数组元素类型[ ] 数组名;比如:int student[ ]; 或者: int[ ] student;类似地,声明二维数组有两种格式:数组元素类型数组名[ ][ ];数组元素类型[ ][ ] 数组名;比如:int score[ ][ ]; 或者: int[ ][ ] score;下面,我们主要以一维数组为例,学习数组的用法。
2.2 数组的创建:声明数组仅仅给出了数组名字和元素的数据类型,想要真正使用数组还必须为数组分配内存空间,也就是创建数组。
在为数组分配内存空间时必须指明数组的长度。
为数组分配内存空间的格式如下:数组名 = new 数组元素的类型 [ 数组的长度 ]例如:student = new int [50];score = new int [50] [4];事实上,数组的声明和创建可以一起完成,比如:int student [ ] = new int [50];一旦数组被创建,数组的大小就不能改变。
如果在程序运行期间,需要对数组的大小进行扩展,通常需要使用另一种数据对象:Vector。
有关向量和扩展数组,有兴趣的同学可以在Java帮助中查找Vector的帮助。
student数组创建之后,其内存模式如图:2.3 数组的初始化:创建数组后,系统会给每个元素一个默认的值,比如,整型数组的默认值是0。
我们也可以在声明数组的同时给数组一个初始值,我们称之为初始化。
比如:int num [ ] = {2, 4, 4, 1}。
这个初始化动作相当于:int num [ ] = new int [ 4];num [0]=2; num [1]=5; num [2]=4; num [3]=1;3 数组的使用3.1 数组的访问前面我们已经看到,数组通过下标访问数组元素,比如:student [ 0 ]=70,student [49]=87等。
注意,下标从0开始,如果数组长度为n,则下标是0 ~ n -1,如果使用n或者以上的元素,将会发生数组溢出异常。
比如:student[ 50 ] = 79,虽然编译的时候能通过,程序运行时将中止。
二维数组的使用与之类似。
3.2 数组的复制可以把一个数组变量复制给另一个,但两个变量引用的都会是同一个内存空间,所以改变一个数组的值,另一个数组变量的值也会改变。
比如:int num [ ] = {2, 3, 5, 1};int numcopy[ ]=num;numcopy[2 ]=5;现在,num[2]也变成了5。
如果真的想把一个数组的所有值都复制到另一个数组中,就需要采用System . arrarycopy()方法:System . arrarycopy ( num, 0, numcopy, 0, 4)。
这样,num和numcopy将指向不同的内存空间,numcopy的值的改变,不会在影响num。
有兴趣的同学可以参考帮助文件。
举例:比如,这是一个对数组进行排序的程序。
4 字符串前面已经说过:Java使用ng包中的String类来表示字符串,尽管我们可以用字符数组来实现类似的功能。
关于类的详细知识,我们下一讲将会讲到。
由于类是面向对象编程语言最核心的概念,学习起来有些难度,我们在这里先通过String类对类的概念有一个粗略的了解,以使我们下面的学习更顺利一些。
字符串,顾名思义,就是一串字符。
比如:”student100”, “China”等。
用一对双引号表示字符串。
我们也可以把字符串看成字符数组(事实上,C就是把字符串当作字符数组来处理),但是把它视为类更方便一些。
为什么?我们下面马上会看到。
4.1 字符串的声明、创建字符串声明的格式是: String 字符串名比如:String s;字符串的创建格式:字符串名 = new String(字符串常量)或者字符串名=字符串常量比如:s = new String (“student” ); 或者:s = “student”;声明和创建可以一步完成,比如:String s = new String (“student” ); 或者 String s = “student”;4.2 类比大家是不是觉得:String这个类的声明,跟前面我们学过的基本数据类型的声明的格式是一样的,比如:整型的声明:int n; 比较一下: String s;事实上,类型变量名这种格式是类的声明的一般格式,你可以把类当作基本数据类型一样来声明。
另一方面,变量名= new 类名(参数列表);比如 s = new String (“student” );这是类的一般创建格式。
5 与字符串有关的操作5.1字符串的长度length()方法:String s = “student”;int len=s.length();需要指出的是,s.length()这种调用方法,是面向对象编程语言特有的方法,我们把s叫做String类的对象,就像int n,我们把n叫做整型变量一样;把length()叫做String类的方法。
下面我们可以看到,String类的方法,都是通过对象名.方法名()这种方式调用的。
5.2取子串String s = “I am a Chinese”;String subs;subs = s.substring (7);5.3字符串的比较St ring tom = “my name is tom”;String jane = “my name is jane”;tom.equals(jane);返回false。
表示不相等pareTo(jane),返回一个负整数,因为第一个不相等的字符t和j相比,t在j的后面;如果返回0,表示相等;如果返回一个正整数,表示tom和jane第一个不相等的字符,tom的在jane的前面。
注意,不要用tom= =jane判断两个字符串是否相等,因为这样的话比较的是它们在内存中的地址是否相同,而不是我们所希望的比较字符串的内容是否相同。
5.4字符串连接String s = “ I am”;String s2 = “a Chinese”;String s4, s4;s4 = s+s2;s4=s + 24;整数型24将会自动转换为字符串。
5.5字符串检索字符串检索是指判断一个字符串是否包含某一个字符或者子字符串,如果有,返回它的位置,如果没有,返回一个负数。
String s = “I am a Chinese”;s.indexOf(“Chinese” ),返回7;s.indexOf(‘a’); 返回2;5.6字符串转换为数值如果一个字符串是一串数字,可以把它转换成相应的数值。
转换为整型:String s = “21”;int x; x= Integer.parseInt (s);转换为浮点型String s = “22.124”;float f; f = Float.valueOf(s).floatValue();当然,也可以把整数或者浮点数转换为字符串类型:String s;int n = 24;s = String.valueOf ( n );5.7其他与字符串有关的方法还有很多,我们不可能一一讲解。
前面我们说过,我们要学会使用帮助。
我们查找关于String的帮助,就可以看到,有关于String的所有方法的详细讲解。
希望同学们可以学会使用帮助。
小结这一讲,我们学习了数组的一些知识,并通过String类,一方面学习了字符串的使用,另一方面先对类的一些概念和用法,比如类的方法调用,有了一些粗略的了解。
数组是我们经常要用到的数据结构,它是一种导出型的数据结构,对我们处理大规模的数据,有很大帮助。
前面我们说,用String类表示字符串,比我们自己用字符数组来做更方便。
因为String类为我们提供了很多现成的可以直接使用的对字符串的操作方法。
比如substring(),equals()等方法。
如果我们要用字符数组来完成与substring类似的功能,就只能自己把子串的每一个字符复制到另外一个字符数组中;与equals()类似的功能,就只能自己一个一个字符地检查两个字符船是否相等。
提供对自己的成员数据的完整的操作方法,也就是把数据和对数据的操作封装起来,是类的最大的好处。
如果现在还不能理解这句话,不要紧,我们现在只需要知道:使用String类这种方法,非常方便。
习题1.声明一个数组,存一个学生的五门成绩。
求该学生总成绩、平均成绩。
2.将一个数组中的值按逆序重新存放,例如,原来顺序为:9,5,7,4,8,要求改为:8,4,7,5,9。
3.编写一个应用程序,连接两个字符串:“I am”和“a student”,并求出第7个字符是什么?找出”am”在该字符串中的位置,最后把所有字符都变成大写字符。
4.统计一个字符串中字母、空格和数字的个数。