JAVA实验五 字符串和数组
JAVA开发与应用 字符串与数组

元素最大下标为length-1
public class HelloWorld{ public static void main(String arg[]) { int myArray[]; myArray=new int[10]; System.out.println("index value"); for(int i=0;i<myArray.length;i++){ System.out.println(i+" "+myArray[i]); } } }//初始化默认值为0 }//初始化默认值为 初始化默认值为0
注意── 一个具有空值的引用不引用任何对象。 注意── 一个具有空值的引用不引用任何对象。试图使用它引用的对象将 会引起一个异常。异常是出现在运行时的错误, 异常”中讨论。 会引起一个异常。异常是出现在运行时的错误,这将在 “异常”中讨论。
在方法外定义的变量被自动初始化。 在方法外定义的变量被自动初始化。局部变量 必须在使用之前做“手工”初始化。 必须在使用之前做 “ 手工 ” 初始化 。 如果编译器能 够确认一个变量在初始化之前可被使用的情形, 够确认一个变量在初始化之前可被使用的情形 , 编 译器将报错。 译器将报错。 public void doComputation() { int x = (int)(Math.random() * 100); (int)(Math. 100) int y; int z; if (x > 50) { 50) y = 9; } z = y + x; // Possible use before initialization }
JAVA实验五字符串和数组

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个元素组成的⼀维数组,输出该数组中的最⼤值、最⼩值、所有元素总和,以及最⼤值和最⼩值在该数组中的位置。
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的位置处的字符。
java程序设计语言-数组与字符串

public char charAt(int index)
返回第index个字符 个字符 返回第
public String substring(int startpoint[,int end])
处截取到尾部[end处]所得到的字符串。 所得到的字符串。 从start处截取到尾部 处截取到尾部 处 所得到的字符串
数组与字符串
数组概念 数组是相同类型的数据元素按顺序组成 数组是相同类型的数据元素按顺序组成的长度 相同类型的数据元素按顺序组成的 的一种复合数据类型。 数组?] 固定的一种复合数据类型 [VB/VF数组 固定的一种复合数据类型。[VB/VF数组?] 数组也是一个对象。 数组也是一个对象。数组元素可以是原始类型 的量,也可以是某一个类的对象。 的量,也可以是某一个类的对象。 元素在数组中的相对位置由下标来指明。 元素在数组中的相对位置由下标来指明。数组 中的每个元素通过数组名加数组下标进行引用 元素通过数组名加数组下标进行引用。 中的每个元素通过数组名加数组下标进行引用。 如:a[3];[下标0~length-1] a[3];[下标 下标0~length数组有一维数组和多维数组之分。Java并没有 数组有一维数组和多维数组之分。Java并没有 真正的多维数组,只有数组的数组 数组的数组。 真正的多维数组,只有数组的数组。
创建字符串对象
使用String类的构造方法创建字符串对象。 使用 类的构造方法创建字符串对象。 类的构造方法创建字符串对象 如: String s=new String(“We are “ Chinese"); 用一个已创建的字符串创建另一个字符串。 用一个已创建的字符串创建另一个字符串。 如: String s1=String(s); String (char a[]):用一个字符数组 创建一个字 :用一个字符数组a 符串对象。 符串对象。 如:char a[]={‘X’, ‘M’, ‘J’}; ‘ ’ ’ ’ String s=new String(a); String (char a[],int startIndex,int count):提取字 : 符数组a 中的一部分字符创建一个字符串对象。 符数组 中的一部分字符创建一个字符串对象。 如:char a[]={‘S’, ‘C’, ‘E’, ‘M’, ‘I’, ‘ ’ ’ ’ ’ ’ ‘X’, ‘M’, ‘J’}; ’ ’ ’ String s=new String(a,5,3);
Java第5章__数组和字符串_

5.2 字符串
• 5.2.1 字符串类
• 字符串类不是基本数据类型,一旦被创 建就不能修改它的值。对于已经存在的 字符串类对象的修改都是重新创建一个 新的对象,然后把新的值保存进去。字 符串类的类名为String。
• String 是final类,即不能被继承。
• 1.String类的值:用""引起来的字符串 。一般称为字符串类对象。
• 3)用new创建数组时,数组元素自动初 始化为数组元素所属类型的默认值。( 数值型为0,布尔型为false,字符型为 不可打印的'\0',类为null)
• 4)可以在声明数组的同时创建并初始化 数组。
• 3.访问数组元素
• 创建并初始化数组之后,就可以访问该数组的 各个数组元素了,访问数组元素需要用到数组 下标。
• 格式2:类型 数组名 [ ] [ ] ={{值列表 },……{值列表}}
• 说明:赋值号右边大括号里面的值列表 嵌套的层数必须与赋值号左边方括号数 量一致。
• 例如:char a[ ][ ] ={{'a','b'},{'c','b'},{'d','f'}}
• 3.成员变量length
• (1)规则数组
• 因为二维数组可以看成是数组元素类型为一维 数组的数组,因此,可以把二维数组看成一维 数组,这样二维数组的length实际上是二维数 组的第一维下标的大小,所谓规则数组就是指 每行具有相同的元素个数的数组。
• 例如:
• double [ ] [ ] d=new double [5][6];
• (2)不规则数组 • 定义:不同的行可以有不同个数的数组
攀枝花学院Java实验五 常用类

实验报告附页String s7 = new String("123.678");int n1=Integer.parseInt(s6);//将s6转化成int型数据。
double n2=Double.parseDouble(s7); //将s7转化成double型数据。
double m=n1+n2;System.out.println(m);String s8=String.valueOf(m); //String调用valuOf(int n)方法将m转化为字符串对象position=s8.indexOf(".");String temp=s8.substring(position+1);System.out.println("数字"+m+"有"+temp.length()+"位小数") ;@SuppressWarnings("unused")String s9=new String("ABCDEF");char a[]=s8.toCharArray(); //将s8存放到数组a中。
for(int i=a.length-1;i>=0;i--){System.out.print(" "+a[i]);}}}运行结果:将上面程序按如下要求修改,并运行:(1)程序中的s6改写成String s6=new String(“1a12b”);运行时提示怎样的错误?Exception in thread "main" ng.NumberFormatException: For input string: "1a12b"at ng.NumberFormatException.forInputString(Unknown Source)at ng.Integer.parseInt(Unknown Source)at ng.Integer.parseInt(Unknown Source)at xiti2.xiugai.main(xiugai.java:39)(2)请用数组a的前3个单元创建一个字符串并输出该串。
实验五:Java数组与字符串(bo)

实验五 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说:是CC说:是DD说:C胡说已知三个人说的是真话,一个人说的是假话。
根据这些信息,找出做好事的人。
【提示】四个人中,每个人均有可能是做好事的人,所以用循环去测试,分别针对每种情形测试说真话的人的个数,如果count值为3,则为要找结果。
【实验过程及结果】1. package shuzu;public class shuzu {public static void main(String[] args {int[] a={0,3,5,6,8,9,10,4,7,11};int max=0;int pomax=0;int min=0;int pomin=0;int sum=0;for(int i=0;i length ;i++{if(i==0{ max=a[i];pomax=i+1;min=a[i];pomin=i+1;}else{if(a[i]>max{max=a[i];pomax=i+1;}if(a[i]{min=a[i];pomin=i+1;}}sum=sum+a[i];}System.out.println("最大值为:"+max;System.out.println("最大值位置为第"+pomax+"元素"; System.out.println("最小值为:"+min;System.out.println("最小值位置为第"+pomin+"元素"; System.out.println("数组和为:"+sum;}}2. package shuzu;public class zifu {public static void main(String[] args {String name="My name is Networkcrazy";System.out.println("字符串的长度"+name.length(;System.out.println("字符串的第一个字符"+name.charAt(0;System.out.println("字符串的最后一个字符"+name.charAt(name.length(-1; System.out.println("字符串的字符串的第一个单词"+name.split(" "[0]; System.out.println("字符串crazy的位置"+name.indexOf("crazy";}}3. package shuzu;public class haoshi {public static void main(String[] args {char goodman;String x="ABCD";for(int k=0;k<=3;k++{int count=0;goodman=x.charAt(k;if(goodman!='A' count++;if(goodman=='C' count++;if(goodman=='D' count++;if(!(goodman=='D' count++;if(count==3System.out.println("做好事的人是:"+goodman;}}}【实验感想】本次实验的重点是数组的相关内容和string类的相关方法,在动手实验中创建数组感觉和c++中所讲的数组很有相通点,并在尝试string类中学到了关于应用string类的方法。
实验报告

实验四类,对象和接口一.实验目的(1)掌握类的声明,对象的创建以及方法的定义和调用。
(2)掌握打包机制。
(3)掌握类的继承。
(4)掌握类接口的使用。
二、实验方案(1)//Father.java;package tom.jiafei;public class Father{int height;protected int money;public int weight;public Father(int m){money=m;}protected int getMoney(){return money;}void setMoney(int newMoney){money=newMoney;}}//Jerry.java:import tom.jiafei.Father;public class Jerry extends Father{public Jerry(){super(20);}public static void main(String args[]){Jerry jerry=new Jerry();jerry.weight=200;jerry.money=800;int m=jerry.getMoney();System.out.println("m="+m);}}(2)interface ShowMessage{void 显示商标(String s);}class TV implements ShowMessage{public void 显示商标(String s){System.out.println(s);}}class PC implements ShowMessage{public void 显示商标(String s){System.out.println(s);}}public class Example4_28{public static void main(String args[]){ShowMessage sm;sm=new TV();sm.显示商标("长城牌电视机");sm=new PC();sm.显示商标("联想奔月5008PC");}}(3)求50以内的素数//Number.javapackage sushu;//将Number.java打包到文件夹sushu中public class Number{public void prn()//创建方法prn(){boolean flag ;for (int i=2;i<50;i++){flag = true ;//将flag初始化for (int j=2 ;j <= i/2 ; j++){ //只需对2到i/2之间取余,因为假如i/2到i有某个数x被i整除,则在2到i/2必定能找到一个数y(y*x=i)被i整除if (i%j == 0 ){flag = false ;break;//假如2到i/2有某个数被i整除,则跳出,执行下一次循环}}if (flag == true ){System.out.print(i+"\t");}//若flag为真,则i为素数,输出i的值}}}//Num.javaimport sushu.Number;//引用定义的包public class Num extends Number{public static void main(String args[]){Number num=new Number();num.prn();}}三、实验结果和数据处理(1)(2)(3)实验五数组与字符串一.实验目的(1)掌握一维数组的概念、定义和使用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五字符串和数组【实验目的】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 stubScanner 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 stubScanner 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;j<a.length;j++){if(a[j]>max){max=a[j];maxwz=j+1;}if(a[j]<min){min=a[j];minwz=j+1;}sum+=a[j];}System.out.println("最大值为:"+max);System.out.println("最大值为第"+maxwz+"元素");System.out.println("最小值为:"+min);System.out.println("最大值为第"+minwz+"元素");System.out.println("所有元素总和为:"+sum);}}3、编写一个Java程序,完成以下功能:1)声明一个名为name的String对象,内容是“My name is xxx”;(xxx为你的名字)2)打印字符串的长度;3)打印字符串的第一个字符;4)打印字符串的最后一个字符;5)打印字符串xxx的位置(从0开始编号的位置)。
package com.shiyan5;public class ShiYan3 {/*** 编写一个Java程序,完成以下功能:*1)声明一个名为name的String对象,内容是“My name is xxx”;(xxx为你的名字)*2)打印字符串的长度;*3)打印字符串的第一个字符;*4)打印字符串的最后一个字符;*5)打印字符串的第一个单词;*6)打印字符串xxx的位置(从0开始编号的位置)。
*/public static void main(String[] args) {// TODO Auto-generated method stubString name="My name is 赵文昌";System.out.println("字符串的长度为:"+name.length());System.out.println("字符串的第一个字符为:"+name.charAt(0));System.out.println("字符串的最后一个字符为:"+name.charAt(name.length()-1));System.out.println("字符串赵文昌的位置为:"+name.indexOf("赵文昌"));}}4、(1)输入一个5位数,判断它是不是回文,即,12321是回文,个位与万位相同,十位与千位相同。
package com.shiyan5;import java.util.Scanner;public class Shiyan4a {/***输入一个5位数,判断它是不是回文,即,12321是回文,个位与万位相同,十位与千位相同。
*/public static void main(String[] args) {// TODO Auto-generated method stubScanner s=new Scanner(System.in);int a;do{System.out.print("请输入一个5位正整数:");a = s.nextInt();}while(a<10000||a>99999);String ss=String.valueOf(a);char[] ch=ss.toCharArray();if(ch[0]==ch[4]&&ch[1]==ch[3]){System.out.println("这是一个回文数。
");}else{System.out.print("这不是一个回文数。
");}}}(2)任意输入一个数,判断是不是回文。
package com.shiyan5;import java.util.Scanner;public class Shiyan4b {/*** 任意输入一个数,判断是不是回文。
*/public static void main(String[] args) {// TODO Auto-generated method stubScanner s = new Scanner(System.in);boolean is=true;System.out.print("请输入一个正整数:");long a=s.nextLong();String ss=Long.toString(a);char[] ch=ss.toCharArray();int j=ch.length;for(int i=0;i<j/2;i++){if(ch[i]!=ch[j-i-1]){is=false;}}if(is==true){System.out.println("这是一个回文。
");}else{System.out.println("这不是一个回文。
");}}}5、请输入星期几的第一个字母来判断一下星期几,如果第一个字母一样,则继续判断第二个字母。
package com.shiyan5;import java.util.Scanner;public class Shiyan5 {/*** 请输入星期几的第一个字母来判断一下星期几,如果第一个字母一样,则继续判断第二个字母。
*/public static void main(String[] args) {// TODO Auto-generated method stubScanner s=new Scanner(System.in);System.out.print("请输入星期的第一个字母大写:");String str=s.nextLine();char ch=str.charAt(0);if(ch<'A'||ch>'Z'){System.out.println("输入错误,请重新输入");}else{switch(ch){case'M': System.out.println("星期一");break;case'W': System.out.println("星期三");break;case'F': System.out.println("星期五");break;case'T':{System.out.println("请输入第二个字母:");String str1=s.nextLine();char ch2=str1.charAt(0);if(ch2=='U'){System.out.println("星期二");}else if(ch2=='H'){System.out.println("星期四");}else{System.out.println("无此写法!");}};break;case'S':{System.out.println("请输入第二个字母:");String str3=s.nextLine();char ch2=str3.charAt(0);if(ch2=='U'){System.out.println("星期天");}else if(ch2=='A'){System.out.println("星期六");}else{System.out.println("无此写法!");}};break;default:System.out.println("输入错误,请重新输入!"); }}}}。