Java 数组 字符 函数
一、
1、
package Hello;
import java.util.Scanner;
public class hello_test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);//创建扫描器
int[] numbers=new int[100];//数组
double sum=0;
for(int i=0;i<5;i++)//输入5个数
{
int x=in.nextInt();
numbers[i]=x;
sum+=x;
}
double aveg=sum/5;
System.out.println("平均值为:"+aveg);
System.out.println("大于平均值的数为:");
for(int i=0;i<5;i++)
{
if(numbers[i]>aveg)
{
System.out.println(numbers[i]);
}
in.close();//关闭扫描器
}
}
}
2、遍历
package Hello;
import java.util.Scanner;
public class hello_test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);//创建扫描器
int[] numbers= {1,2,3,4,4,6};//数组。直接初始化赋值
System.out.println("数组长度:"+numbers.length);
for(int i=0;i<numbers.length;i++)
{
System.out.print(numbers[i]+" "); //区别println 和print区别,一个是输出换行,一个不换行
}
}
}
二、
1、
package Hello;
import java.util.Scanner;
public class hello_test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);//创建扫描器
int[] a1= {1,2,3,4,5,6};//数组
int[] a2=a1;//将a1和a2共同指向一个数组
for(int i=0;i<a1.length;i++)
{
a1[i]++;
}
for(int i=0;i<a2.length;i++)
{
System.out.print(a2[i]+" ");
}
}
}
可以看到a1和a2其实是指向了共同的地址,所以a1变化后,a2数组也跟着变。
2、
package Hello; import java.util.Scanner; public class hello_test { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in=new Scanner(System.in);//创建扫描器 int[] a1= {1,2,3,4,5,6};//数组 int[] a2= {1,2,3,4,5,6}; int[] a3=a1; System.out.println("a1==a2? "+(a1==a2)); System.out.println("a1==a3? "+(a1==a3)); } }
可以看到。a1和a2虽然值一样,但是存储位置是不同的,所以,第一个是false
而a1和a3指向了同一个位置,所以第二行是true。
从上面可以看到不能简单的只是==来判断是否元素相同,需要遍历才可以
3、
要想得到一样的数值,但是位置不一样,只能是遍历才可以。
package Hello; import java.util.Scanner; public class hello_test { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in=new Scanner(System.in);//创建扫描器 int[] a1= {1,2,3,4,5,6};//初始化赋值数组 int[] a2=new int[a1.length];//new 生成一个新位置数组 for(int i=0;i<a2.length;i++) //遍历复制 { a2[i]=a1[i]; } boolean IsEqu=true;//假定各个元素是相等 for(int i=0;i<a2.length;i++) { if(a1[i]!=a2[i]) { IsEqu=false;//只要出现不相等,就 false break; } } System.out.println("a1==a2? "+IsEqu); } }
三、
1、统计数字出现的个数
package Hello; import java.util.Scanner; public class hello_test { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in=new Scanner(System.in);//创建扫描器 int[] Num=new int[10]; int x; x=in.nextInt(); while(x!=0) { if(x>=0 && x<=9) { Num[x]++; } x=in.nextInt(); } for(int i=0;i<10;i++) { System.out.println(i+": "+Num[i]); } in.close(); } }
2、新的遍历方式
package Hello; import java.util.Scanner; public class hello_test { public static void main(String[] args) { // TODO Auto-generated method stub int[] num= {1,2,3,4,5}; for(int k:num) { System.out.println(k); } } }
3、二维数组
package Hello; import java.util.Scanner; public class hello_test { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in=new Scanner(System.in); int[][] num=new int[2][3]; for(int i=0;i<2;i++) { for(int j=0;j<3;j++) { num[i][j]=in.nextInt(); } } for(int i=0;i<2;i++) { for(int j=0;j<3;j++) { System.out.print(num[i][j]+" "); } System.out.println(); } in.close(); } }
4、
package Hello; import java.util.Scanner; public class hello_test { private static final Math Maht = null; public static void main(String[] args) { // TODO Auto-generated method stub Scanner in=new Scanner(System.in); int[][] num=new int[3][3]; for(int i=0;i<2;i++)//输入 { for(int j=0;j<3;j++) { num[i][j]=(int) Maht.round(Math.random());//随机生成 } } for(int i=0;i<3;i++)//读取 { for(int j=0;j<3;j++) { System.out.print(num[i][j]+" "); } System.out.println(); } int flag0=0;//判断标志位 int flagx=0; for(int i=0;i<3;i++)//判断行是否一致 { if(num[i][0]==0 && num[i][1]==0 && num[i][2]==0) { flag0=1; } else if(num[i][0]==1 && num[i][1]==1 && num[i][2]==1) { flagx=1; } } for(int i=0;i<3;i++)//判断列是否一致 { if(num[0][i]==0 && num[1][i]==0 && num[2][i]==0) { flag0=1; } else if(num[0][i]==1 && num[1][i]==1 && num[2][i]==1) { flagx=1; } } if(num[0][0]==0 && num[1][1]==0 && num[2][2]==0)//正对角线 { flag0=1; } else if(num[0][0]==1 && num[1][1]==1 && num[2][2]==1) { flagx=1; } if(num[0][2]==0 && num[1][1]==0 && num[2][0]==0)//斜对角线 { flag0=1; } else if(num[0][2]==1 && num[1][1]==1 && num[2][0]==1) { flagx=1; } if(flag0==1 && flagx==0) { System.out.println("O win"); } else if(flag0==0 && flagx==1) { System.out.println("X win"); } else { System.out.println("平局"); } in.close(); } }
**************************************************************************************************************************
四、字符 (单引号)
1、
package Hello; import java.util.Scanner; public class hello_test { private static final Math Maht = null; public static void main(String[] args) { // TODO Auto-generated method stub Scanner in=new Scanner(System.in); char a='A'; System.out.println(a); System.out.println((int)a); char b='\u0041';//unicode编码,16进制 1+4*16=65 System.out.println(b); System.out.println(b+1);//编码对应的值加1 b++; System.out.println(b); char c='王'; System.out.println(c); System.out.println(c+1); c++; System.out.println(c);//Unicode表中王的下一个字 in.close(); } }
2、
package Hello; import java.util.Scanner; public class hello_test { private static final Math Maht = null; public static void main(String[] args) { // TODO Auto-generated method stub Scanner in=new Scanner(System.in); char a='A'; char b='a'; System.out.println(a-b);//a比A位置编号大32 char c='b'; System.out.println((char)(c-32)); in.close(); } }
五、
package Hello; import java.util.Scanner; public class hello_test { private static final Math Maht = null; public static void main(String[] args) { // TODO Auto-generated method stub Scanner in=new Scanner(System.in); System.out.println(Character.isDigit('1'));//是不是数字 System.out.println(Character.isLetterOrDigit(' '));//是不是数字或者字母 System.out.println(Character.toUpperCase('a'));//小写换大写 in.close(); } }
六、
Math类
package Hello; import java.util.Scanner; public class hello_test { private static final Math Maht = null; public static void main(String[] args) { // TODO Auto-generated method stub Scanner in=new Scanner(System.in); System.out.println(Math.random());//随机数 System.out.println(Math.abs(-12));//绝对值 System.out.println(Math.round(2.3));//四舍五入 System.out.println(Math.round(2.6)); System.out.println(Math.pow(2,3));//乘方 in.close(); } }
*************************************************************************************************************
六、字符串(双引号)
1、
package Hello; import java.util.Scanner; public class hello_test { private static final Math Maht = null; public static void main(String[] args) { // TODO Auto-generated method stub Scanner in=new Scanner(System.in); String s=new String("hello"); System.out.println(s+" world"); String a; a=in.nextLine();//得到一整行 System.out.println(a); a=in.next();//得到一行第一个空格前的内容 System.out.println(a); in.close(); } }
2、
package Hello; import java.util.Scanner; public class hello_test { private static final Math Maht = null; public static void main(String[] args) { // TODO Auto-generated method stub Scanner in=new Scanner(System.in); String a; a=in.nextLine(); System.out.println(a); System.out.println(a=="bye");//两个字符串位置比较,是不是同一个东西 System.out.println(a.equals("bye"));//两个字符串内容比较 in.close(); } }
3、
package Hello; import java.util.Scanner; public class hello_test { private static final Math Maht = null; public static void main(String[] args) { // TODO Auto-generated method stub Scanner in=new Scanner(System.in); String a; String b; a="abc"; b="abcd"; System.out.println(a.compareTo(b));//比较大小 System.out.println("Abcd".compareTo(b));//比较大小 A比a小32 System.out.println(a.length());//字符长度 for(int i=0;i<a.length();i++)//得到字符 { System.out.println(a.charAt(i)); } String s="12345abcdef"; System.out.println(s.substring(2));//从2号下标到结尾 System.out.println(s.substring(2,4));//从2号下标到4号下标之前 in.close(); } }
比较是两个字符位置相减:-32 是A比a 小32。
4、
package Hello; import java.util.Scanner; public class hello_test { private static final Math Maht = null; public static void main(String[] args) { // TODO Auto-generated method stub Scanner in=new Scanner(System.in); String s="123451abcdef"; System.out.println(s.indexOf('1'));//寻找字符,单引号 System.out.println(s.indexOf('A')); int loc=s.indexOf('1'); System.out.println(s.indexOf('1',loc+1));//从loc+1的位置重新开始找,注意加1 System.out.println(s.indexOf("345"));//寻找字符串双引号 in.close(); } }
5、不变性
package Hello; import java.util.Scanner; public class hello_test { private static final Math Maht = null; public static void main(String[] args) { // TODO Auto-generated method stub Scanner in=new Scanner(System.in); String s="abcdef"; String s1=s.toUpperCase(); System.out.println(s);//s没发生改变 System.out.println(s1);// in.close(); } }
6、
********************************************************************************************************************************
七、函数
package Hello; import java.util.Scanner; public class hello_test { public static boolean IsPrim(int n) //判断是否是素数的函数 { boolean Is=true; for(int i=2;i<=Math.sqrt(n);i++) { if(n%i==0) { Is=false; break; } } return Is; } public static void main(String[] args) { // TODO Auto-generated method stub Scanner in=new Scanner(System.in); int n=in.nextInt();//输入素数的个数 int[] Num=new int[n];//存放素数的数组 int i=0,num=2; while(i<n) { if(IsPrim(num)) { Num[i]=num; i++; } num++; } for(int j=0;j<n;j++) //输出数组 { System.out.print(Num[j]+" "); } in.close(); } }
可以看到函数是和main()并列的。存在class下。