文档库 最新最全的文档下载
当前位置:文档库 › Java中的数组和字符串

Java中的数组和字符串

Java中的数组和字符串
Java中的数组和字符串

Java中的数组和字符串

一.数组:用一个标识符(变量名)和一组下标来代表一组相同数据类型的数据元素的集合.其中的每个数组元素在数组中的位置是固定的.可以通过叫做下标的编号加以区分,通过标识符和下标来访问每一个数据元素.

数组必须经过声明和初始化后,才可以使用.

1、数组的声明(确定数组名、数组的维数和数组的数据数据类型)但并没有分配存储空间

一维数组的声明格式如下:

类型标识符数组名[]; 或类型标识符[] 数组名;

int x[]; //可读性强 int[] x;常用于作为方法的返回值

public int[] fun() { }

二维数组的声明格式如下:

类型标识符数组名[][]; 或类型标识符[][] 数组名;

int x[][]; int[][] x;

类型说明符指明数组元素的类型,可以是基本类型、类或接口;方括号表示数组的维数.

注意:对于二维数组,前面的[]表示行,后面的[]表示列.

2、数组的初始化

声明数组并不能够为数组分配存储空间.要想使数组分配存储空间必须指定数组元素的个数. java有两种方式进行初始化:

1)通过指定初值的方式:

例如:

int[] a={12,33,77,88};

int[][] a={{1,2,3},{4,5,6},{7,8,9}};

2)用关键字new初始化数组:

用关键字new初始化数组时候,只为数组分配存储空间而不对数组元素赋初值.

用关键字初始化数组也有两种形式:

(1)先声明数组,再初始化数组

一维:类型标识符数组名[];

数组名=new 类型标识符[数组长度];

二维:类型标识符数组名[][];

数组名=new 类型标识符[数组长度][];//必须指定行的长度.跟c语言不同.

注意:对于二维数组来说,可以不指定列,但必须指定行数.

数组名=new 类型标识符[数组长度][数组长度];//数组长度是整型但不能是长整型

(2)声明并初始化

一维:类型标识符数组名[]=new 类型标识符[数组长度];

二维:类型标识符数组名[][]=new 类型标识符[数组长度][];//如果没有给数组赋值的话,系统自动赋予默认值.

(也就是说声明和初始化写在同一行)

3、数组的引用

一维数组的引用格式如下:

数组名[数组下标];

二维数组的引用格式如下:

数组名[数组下标][数组下标];

数组下标从0—length-1

注:数组的长度length属性用来存储数组的长度,即数组元素的个数,因此可通过length属性来获得数组长度的信息.注意length为属性,而不是方法.这不同于字符串的length()方法.字符串对象的length()方法可以获得字符串中的字符个数.

二.字符串

(1)常用方法:

1.charAt(int index)返回会在index的位置处的字符。返回类型为char

2.concat(String str)连接两个字符串,参数str在后面,返回类型为String

3.endsWith(String str) 判断字符串是否以str字符串结束,返回类型boolean

4.equals(Object obj)判断一个字符串是否等于一个obj对象,返回类型为boolean

5.equalsIgnoreCase(String anotherString) 判断一个字符串是否等于另一个字符串,返回boolean

6.getBytes()将一个字符串转化为字节数组,使用系统默认编码,返回类型为byte[];

7.getBytes(String enc)将一个字符串转化为字节数组,用名字enc的编码,返回类型为byte[];

8.indexOf(int ch)返回字符ch在字符串里第一次出现的位置,如果字符串里不存在字符ch,则返回-1,返回类型为int

9.indexOf(String str)返回字符串str在字符串里第一次出现的位置,如果不存在字符串str,则返回-1。

10.length()返回字串的长度,注意:同数组的区别:数组是属性,因此用length表示。

11.toCharArray()将这个字符串转化成字符叔祖,返回类型为char[]

12.trim():去掉字符串的首尾空格。

13.toUpperCase():将字符串传唤成大写

(2)StringBuffer类

StringBuffer类是可变字符串类,创建了它的对象后,可以随意修改,改变字符串的内容。如果字符串的长度超过了StringBuffer类对象的容器,则该对象的容量自动扩大。

构造器:

StringBuffer()默认长度为16

StringBuffer(int length) 用创于建一个长度为length的对象

StringBuffer(String str)用str创建一个对象,

方法:

1)int capacity()获取它的容量

2)void setLength(int a)设置容量

3)int length();长度,字符串的真实长度

4)StringBuffer append(Object obj)

5)StringBuffer append(String str)

6)StringBuffer append(StringBuffer sb)

7)StringBuffer insert(int offset,Object obj)

8)StringBuffer append(int offset,String str)

9)StringBuffer append(int offset,StringBuffer sb)

(3)StringTokenizer类

Java中提供了专门用于分析字符串的类StringTokenizer(位于java.util包中),可以将字符串

分解为独立使用的单词(语言符号)。语言符号之间由定界符(delim)或空格、制表符、换行符等来分隔。其他字符也同样可以设定为定界符。

StringTokenizer的构造方法

StringTokenizer(String str)使用默认的定界符,即空格,制表符,换行回车,TAB StringTokenizer(String str,String delim)为字符串str构造一个字符串分析器,并使用delim 作为定界符。

方法:

1)String nextToken()//返回一个字符

2)boolean hasMoreTokens()//判断要分析的字符串还有语言符号吗?有返回true,否则返回false

3)int countTokens()//共有多少个语言符号

java中的数组和字符串

Java中的数组和字符串 一.数组:用一个标识符(变量名)和一组下标来代表一组相同数据类型的数据元素的集合.其中的每个数组元素在数组中的位置是固定的.可以通过叫做下标的编号加以区分,通过标识符和下标来访问每一个数据元素. 数组必须经过声明和初始化后,才可以使用. 1、数组的声明(确定数组名、数组的维数和数组的数据数据类型)但并没有分配存储空间 一维数组的声明格式如下: 类型标识符数组名[]; 或类型标识符[] 数组名; int x[]; //可读性强 int[] x;常用于作为方法的返回值 public int[] fun() { } 二维数组的声明格式如下: 类型标识符数组名[][]; 或类型标识符[][] 数组名; int x[][]; int[][] x; 类型说明符指明数组元素的类型,可以是基本类型、类或接口;方括号表示数组的维数. 注意:对于二维数组,前面的[]表示行,后面的[]表示列. 2、数组的初始化 声明数组并不能够为数组分配存储空间.要想使数组分配存储空间必须指定数组元素的个数. java有两种方式进行初始化: 1)通过指定初值的方式: 例如: int[] a={12,33,77,88}; int[][] a={{1,2,3},{4,5,6},{7,8,9}}; 2)用关键字new初始化数组: 用关键字new初始化数组时候,只为数组分配存储空间而不对数组元素赋初值. 用关键字初始化数组也有两种形式: (1)先声明数组,再初始化数组 一维:类型标识符数组名[]; 数组名=new 类型标识符[数组长度]; 二维:类型标识符数组名[][]; 数组名=new 类型标识符[数组长度][];//必须指定行的长度.跟c语言不同. 注意:对于二维数组来说,可以不指定列,但必须指定行数. 或 数组名=new 类型标识符[数组长度][数组长度];//数组长度是整型但不能是长整型 (2)声明并初始化 一维:类型标识符数组名[]=new 类型标识符[数组长度]; 二维:类型标识符数组名[][]=new 类型标识符[数组长度][];//如果没有给数组赋值的话,系统自动赋予默认值. (也就是说声明和初始化写在同一行) 3、数组的引用 一维数组的引用格式如下: 数组名[数组下标];

Java数组与Java基础类实验报告

西安邮电大学 (计算机学院) 课内实验报告 实验名称:数组与Java基础类 专业名称:计算机科学与技术 班级:计科1405班 学生姓名:高宏伟 学号:04141152 指导教师:刘霞林 实验日期:2016.10.27

一、实验目的 掌握Java中的数组定义、引用,掌握String类和StringBuffer类的使用。 二、实验要求 1.编写一个使用Java 数组的的程序。 2.编写一个使用String类的程序。 3.编写一个使用StringBuffer类的程序。 三、实验内容 (一) 使用数组求Fibonacci数列前10项之和 1.编写程序。 public class Fibonacci { public static void main(String args[]){ int i=0,j=1,s=0; for(int n=1;n<=5;n++){ s+=(i+j); i = (int)(i+j); j = (int)(i+j); } System.out.print("前10项之和是:"+s); } } 2.编译并运行程序。 (二)练习String类的常用方法 ?实验要求: 编写一个Java应用程序,判断两个字符串是否相同,判断字符串的前缀、后缀是否和某个字符串相同,按字典顺序比较两个字符串的大小关系,检索字符串,创 建字符串,将数字型字符串转换为数字,将字符串存放到数组中,用字符数组创建 字符串。。 ?程序模板: StringExample.java class StringExample { public static void main(String args[]) { String s1=new String("you are a student"),s2=new String("how are you"); if(【代码1】) // 使用equals方法判断s1与s2是否相同 { System.out.println("s1与s2相同"); }

第四讲java数组和字符串

概述 什么是数组?除了基本数据类型,还提供一种导出类型:数组.数组是相同类型地数据按顺序组成地一种复合数据类型,通过数组名和下标,可以使用数组中地数据.下标从开始.数组是所有编程语言中常用地数据结构. 为什么要数组呢?我们来举一个例子.假设我们需要表示一个班个人地数学成绩,要求求出平均成绩.如果没有数组,我们需要用前面学过地声明变量地方法,声明个变量,写次加法运算!数组可以大大地简化类似地问题!我们只要声明一个长度为地整型数组,结合上一讲我们学过地循环语句,就可以很方便地解决这个问题! 在以前地编程语言比如或者中,字符串也使用数组来表示地:字符串是字符数组!所以字符串与数组有着天然地联系.但是在中,提供了一种更方便地表示字符串地方法:用一个类来表示.类是面向对象地语言特有地概念,对于初次接触面向对象技术地人来说,比较难理解.所以,这一讲,我们将学习表示字符串地类,也对类地使用有一个粗略地了解,作为下一讲详细学习类地准备. 需要指出地是,语言里地其他两种导出类型:结构体和共用体,在里已经被取消. 下面,我们来学习数组和字符串. 数组地声明、创建和初始化 数组地声明: 声明数组,包括声明数组地名字、数组包含地元素地数据类型.数组可以一维地,也可以是二维或者多维地.举例来说:一个班有个人,我们用一个长度为地一维数组表示;如果要表示每个同学地五门高考成绩,那我们就需要用一个第一维长度为,第二维长度为地二维数组. 声明一维数组有两种格式: 数组元素类型数组名[ ]; 数组元素类型[ ] 数组名; 比如:[ ]; 或者:[ ] ; 类似地,声明二维数组有两种格式: 数组元素类型数组名[ ][ ]; 数组元素类型[ ][ ] 数组名; 比如:[ ][ ]; 或者:[ ][ ] ; 下面,我们主要以一维数组为例,学习数组地用法. 数组地创建: 声明数组仅仅给出了数组名字和元素地数据类型,想要真正使用数组还必须为数组分配内存空间,也就是创建数组.在为数组分配内存空间时必须指明数组地长度.为数组分配内存空间地格式如下: 数组名数组元素地类型[ 数组地长度] 例如:[]; [] []; 事实上,数组地声明和创建可以一起完成,比如: [ ] []; 一旦数组被创建,数组地大小就不能改变.如果在程序运行期间,需要对数组地大小进行扩展,通常需要使用另一种数据对象:.有关向量和扩展数组,有兴趣地同学可以在帮助中查找地帮助.

实验三.数组与字符串

1.实验三数组与字符串 一、实验目的: 1.熟悉Java的数组的使用,编程练习数组声明、定义、遍历和排 序等操作。 2.熟悉Java的字符串相关类的使用,通过编程实现针对字符串的 一般操作。 二、实验内容: 1.定义一个有10个元素的整型数组,找出最大最小值; 2.定义一个有10个元素的整型数组,用选择法实现由小到大排序; 3.定义一个能实现冒泡法排序的方法bSort(int[] arr),然后定义并 初始化一4*5的二维数组,用bSort(int[] arr)将该二维数组的每 行元素进行升序排序; 4.编程求解一个3*3矩阵每一行的元素之和,每一列元素之和,对 角线元素之和,并输出。 5.接收键盘输入的字符串,使用String类的方法indexOf()来统 计该字符串中各个字符出现的次数。 6.设定并初始化一个字符串数组,并将数组中那些以字母b开头的 元素打印出来。 7.接收键盘输入的字符串,分别按顺序输出该字符串中的大写字符 和小写字符。 8.接收键盘输入的英文字符串(单词之间用空格隔开),将字符串 中出现的单词首字母改成大写后输出。 三、实验要求: 1.通过实验掌握数组的定义和初始化; 2.掌握数组最值求解算法; 3.掌握数组的基本排序算法; 4.掌握遍历数组的算法; 5.通过实验掌握String类的使用; 6.通过实验掌握String类常用方法的使用;

7.从JDK文档中查阅String类的以下方法(与本实验内容相关): split(),startWith(),toUpperCase(),indexOf(),charAt(),并说明 它们的用法; 8.写出实验报告。 四、实验学时:3学时 五、实验步骤: 1.进入Java编程环境; 2.新建一个Java文件,编写main()方法实现一维数组求最值的算 法; 3.新建一个Java文件,编写main()方法实现一维数组选择法排序 算法; 4.新建一个Java类,定义bSort(int[] arr)方法(冒泡法)实现数组 升序排序,然后在main方法里实现对一4*5二维数组每行元素 的升序排序; 5.新建一个Java文件,编写main()方法声明并初始化一两维3*3 数组,设计算法实现行、列和对角线元素的求和操作; 6.编写主方法main(),其中实现接收键盘输入功能、文件操作功能 和文件内容输出功能; 7.调用相应构造方法创建String对象; 8.查阅JDK文档,找出可以实现实验内容的String方法,设计算 法,编写程序; 9.调试运行程序,观察输出结果。

JAVA实验五 字符串和数组

实验五字符串和数组 【实验目的】 1.掌握数组的声明、分配空间及初始化 2.理解多维数组(重点掌握二维) 3.掌握String类的特点及常用方法的使用 4.掌握StringBuffer类的特点及常用方法的使用 5.掌握String类和StringBuffer类的区别 6.掌握equal方法与==的区别 【预习内容】 1.复习课件中理论知识 2.练习课堂所讲的例子 【实验内容及步骤】 1、请输入10个整数进行排序。 package com.shiyan5; import java.util.Scanner; public class ShiYan1 { /** * 1、请输入10个整数进行排序。 */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner s= new Scanner(System.in); int[] a=new int[10]; System.out.println("请输入10个整数"); for(int i=0;i<10;i++){ a[i]=s.nextInt(); } System.out.print("输入原序列为:"); for(int i=0;i<10;i++){ System.out.print(a[i]+" "); } for(int i=0;i<10;i++){ for(int j=i+1;j<10;j++){ if(a[i]>a[j]){ int t=a[i]; a[i]=a[j];

a[j]=t; } } } System.out.print("\n排序后:"); for(int i=0;i<10;i++){ System.out.print(a[i]+" "); } } } 2、定义一个10个元素组成的一维数组,输出该数组中的最大值、最小值、所有元素总和,以及最大值和最小值在该数组中的位置。 package com.shiyan5; import java.util.Scanner; public class ShiYan2 { /** * 定义一个10个元素组成的一维数组,输出该数组中的最大值、最小值、所有元素总和 * ,以及最大值和最小值在该数组中的位置。 */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner s=new Scanner(System.in); int[] a=new int[10]; System.out.println("请输入10个整数"); for(int i=0;i<10;i++){ a[i]=s.nextInt(); } int max=a[0]; int min=a[0]; int maxwz=0; int minwz=0; int sum=0; for(int j=0;jmax){ max=a[j]; maxwz=j+1; } if(a[j]

第四讲java数组和字符串

第四讲数组和字符串 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];

java数组与字符串

Ex3:数组和字符串 1、假设s1,s2,s3,s4是四个字符串,其值如下:(25分) String s1=“Welcome to Java” String s2=s1 String s3=new String(“welcome to java”); String s4=“welcome to java” 下面表达式的结果是什么? (1)s1= =s2; 结果:true (2)s2= =s2; 结果:true (3)s1.equal(s2); 结果:true (4)s2.equal(s3); 结果:false (5)https://www.wendangku.net/doc/c713662130.html,pareTo(s2); 结果:0 (6)https://www.wendangku.net/doc/c713662130.html,pareTo(s3); 结果:-32 (7)s1= =s4; 结果:false (8)s1.charAt(0); 结果:W (9)s1.indexof(…j?); 结果:11 (10)s1.indexof(“to”); 结果:8 (11)https://www.wendangku.net/doc/c713662130.html,stindexof(…a?); 结果:14 (12)https://www.wendangku.net/doc/c713662130.html,stindexof(“o”,15); 结果:9 (13)s1.length() 结果:15 (14)s1.substring(5) 结果:me to Java (15)s1.substring(5,11) 结果:me to J (16)s1.startwith(“wel”) 结果:false (17)s1.ednwith(“Java”) 结果:true (18)s1.toLowerCase() 结果:welcome to java (19)s1.toUpperCase() 结果:WELCOME TO JA V A (20)“Welcom”.trim() 结果:Welcome (21)s1.replace(…o?, …T?) 结果:WelcTme tT Java (22)s1.replaceAll(…o?, …T?) 结果:WelcTme tT Java (23)s1.replaceFirst(…o?, …T?) 结果:WelcTme to Java (24)s1.toCharArray() 结果:char []s1={…W?,?e?,?l?,?c?,?o?,?m?,?e?,?…,?t?,?o?, ……,?J?,?a;,?v?,?a?} 为了创建一个字符串“Welcome to Java”,可能会用到如下所示的语句: String s=”Welcome to Java”; 或者 String s=new String(“Welcome to Java”); 哪个语句更好?为什么? 解:第一个语句。因为字符串使用非常频繁第一种比较简化,而第二种比较繁琐。 2、假设s1和s2是两个字符串,下面哪些语句或表达式是错误的?(9分) (1)String s=new String(“new string”); (2)String s3=s1+s2; (3)String s3=s1-s2; (4)s1==s2; (5)s1>=s2;

实验报告 Java数组与字符串

实验五 Java数组与字符串 【实验目的】 1)掌握数组的声明、分配空间及初始化 2)理解多维数组(重点掌握二维) 3)掌握String类的特点及常用方法的使用 4)掌握StringBuffer类的特点及常用方法的使用 5)掌握String类和StringBuffer类的区别 6)掌握equal方法与==的区别 【实验环境】 JDK1.6+Eclpise3.2 【实验准备】 1)复习课件中理论知识 2)练习课堂所讲的例子 【实验内容】 1、定义一个10个元素组成的一维数组,输出该数组中的最大值、最小值、所有元素总和,以及最大值和最小值在该数组中的位置。 2、编写一个Java程序,完成以下功能: 1)声明一个名为name的String对象,内容是“My name is Networkcrazy”; 2)打印字符串的长度; 3)打印字符串的第一个字符; 4)打印字符串的最后一个字符; 5)打印字符串的第一个单词; 6)打印字符串crazy的位置(从0开始编号的位置)。 3、四位同学中一位做了好事,校长问这四位是谁做的好事。 A说:不是我 B说:是C C说:是D D说:C胡说 已知三个人说的是真话,一个人说的是假话。根据这些信息,找出做好事的人。 【提示】四个人中,每个人均有可能是做好事的人,所以用循环去测试,分别针对每种情形测试说真话的人的个数,如果count值为3,则为要找结果。【实验过程及结果】

1、定义一个10个元素组成的一维数组,输出该数组中的最大值、最小值、所有元素总和,以及最大值和最小值在该数组中的位置。 运行结果

2、编写一个Java程序,完成以下功能: 运行结果: 3、四位同学中一位做了好事,校长问这四位是谁做的好事。 A说:不是我 B说:是C C说:是D D说:C胡说 已知三个人说的是真话,一个人说的是假话。根据这些信息,找出做好事的人。

Java数组和字符串数组求和

JAVA编写一个程序,分别通过一维数组实现Fibonacci数列的前32项和的求值,通过二维数组实现杨辉三角前十行求值。 public class CalFibonacci { public static void main(String args[]) { int Fibonacci []=new int[34]; //防止Fibonacci[33/34]越界 int YangHuiTriangle[][]=new int[12][12];//防止YangHuiTriangle[11]越界 int i,j; long sum=0,sum1=0; for(i=0;i<32;i++) { Fibonacci[0]=0; Fibonacci[1]=1; Fibonacci[i+2]=Fibonacci[i+1]+Fibonacci[i]; sum+=Fibonacci[i]; } System.out.println("Fibonacci 的前32项和为:"+sum); for(i=0;i<10;i++) for(j=0;j

java三种字符数组合并的方法

三种字符数组合并的方法public static String[] getOneArray() { String[] a = { "0", "1", "2" }; String[] b = { "0", "1", "2" }; String[] c = new String[a.length + b.length]; for (int j = 0; j < a.length; ++j) { c[j] = a[j]; } for (int j = 0; j < b.length; ++j) { c[a.length + j] = b[j]; } return c; } public static Object[] getTwoArray() { String[] a = { "0", "1", "2" }; String[] b = { "0", "1", "2" }; List aL = Arrays.asList(a); List bL = Arrays.asList(b); List resultList = new ArrayList(); resultList.addAll(aL); resultList.addAll(bL); Object[] result = resultList.toArray(); return result; } public static String[] getThreeArray() { String[] a = { "0", "1", "2", "3" }; String[] b = { "4", "5", "6", "7", "8" }; String[] c = new String[a.length + b.length]; System.arraycopy(a, 0, c, 0, a.length);

相关文档
相关文档 最新文档