0
点赞
收藏
分享

微信扫一扫

Java初学者之基本程序设计结构

phpworkerman 2022-01-07 阅读 97

Java第3章

1. String与StringBuilder

String:对字符串进行操作更改时,每次都会在内存空间开辟一个新的小空间,n次改变就出现n个空间的使用,因此,我们要想办法将这个浪费的时间和空间尽可能缩小。

我们提出了StringBuilder类

StringBuilder是个内容可变的容器(PS:申请一个足够大的空间,而不用像String一直在申请空间。)
//在进行多线程保证安全时,StringBuffer替代StringBuilder,但作用都是一样的,内部原理都是将其累加放在后面。

public class StringBuilder{
	public static void main(string[] args){
		//创建对象
		StringBuilder a=new StringBuilder();
		//StringBuilder aa=new StringBuilder(hello); 两种创建形式都是可以的
		a.append(“hello”).append("world").append(2022);
		System.out.println("a:"+a);
		//a的显示结果就是:helloworld2022
	}
}

2. 输入输出

我们会使用到 import java.util.*;这个包进行调用
创建对象:
Scanner sc=new Scanner(System.in);//sc是一个变量名。除了sc其它的均不可改变。
接收数据:
int x=sc.nextInt();//x变量名,其他的也是不可变 sc与上面一致
import java.util.*;
public class ScannerTest{
	public static void main(String[] args)
	{
	Scanner sc=new Scanner(System.in);//输入
	int x=sc.nextInt();输出
	System.out.println("x:"+x);
	//输入一行,使用:
	//String xx=in.nextLine();

	}
}

PS:如果想要实现读取密码,使用的是Console类。

3. 格式化输出

① System.out.printf()

String str="ABC"
double a=1.23;
int i=123;
System.out.printf("%f\n",pi);//表示格式化输出浮点数
System.out.printf("%d\n",i);//表示格式化输出十进制数
System.out.printf("%s\n",str);//表示格式化输出字符串
//结果
/*
1.230000
123
ABC
*/
String x=String.format(%s--%d--%s”,“大家”,6,!);

4.文件输入与输出

//输入
Scanner in = new Scanner(Paths.get("myfile.txt")),"UTF-8");
//输出
String dir=System.getProperty("user.dir");
System.out.println(dir);

5.Switch与break&continue

break:跳出一个循环体或者完全结束一个循环
continue:跳过本次循环体重尚未执行的语句,进行下一次的循环条件判定。

int c=20;
switch (c){
            case: 10:
                System.out.println("你是最棒的,抽中10元,花费10元");
                break;
            case: 20:
                System.out.println("你是最棒的,抽中20元,花费10元");
                break;
            case: 50:
                System.out.println("你是最棒的,抽中50元,花费10元");
                break;
            default:
                System.out.println("你是最棒的,抽中10元,花费100元");
                break;
        }
/*结果:
你是最棒的,抽中20元,花费10元
*/
	 				 case: 20:
                System.out.println("你是最棒的,抽中20元,花费10元");
                continue;
            case: 50:
                System.out.println("你是最棒的,抽中50元,花费10元");
                break;

/*结果:
你是最棒的,抽中20元,花费10元
你是最棒的,抽中50元,花费10元
*/

6.大数值

1.valueOf方法
可以将数值转换成大数值
BigInteger a=BigInter.valueOf(100);

2.数据需要使用add代替“+”,用multiply代替“×”

import java.math.*;
import java.util.*;

public class Test{
	public static void main(String[] args)
	{
Scanner in = new Scanner(System.in);
		
		System.out.print("How many numbers do you need to draw?");
		int k=in.nextInt();
		
		System.out.print("What is the hightest number you can draw?");
		int n=in.nextInt();
		
		BigInteger lotteryOdds=BigInteger.valueOf(1);
		
		for(int i=1;i<k;i++)
		{
			lotteryOdds=lotteryOdds.multiply(BigInteger.valueOf(n-i+1)).divide(BigInteger.valueOf(i));
			
			System.out.println("Your odds are 1 in "+lotteryOdds+".Good luck!");
			
		}
	}
	
}

7.数组

① 数组的声明

数组索引从0开始

int[] a=new int [100];//创建了一个可以存储100个整数的数组a
a[0]=1;
a[1]=2;

int a[]=null;
a=new int[3];

② 数组引用传递

java中没有指针,引用类型的"="相当于把其修改掉 切换自己的指向

int [][] a= new int[3][5]; //指向一个二维数组
		a[0]=new int[7];//二维数组分为3个一维数组,其中第一个一维数组索引地址为新创建的这个数组的地址
		int [][] b=new int [][]{
			{2,3,4},{4,4,4,4,5}
		};
④ for each

格式:for(变量:数组){ 执行的操作 }

//输出排序后的数组
int []a={4,45,7,3,2,4,65,354};
		Arrays.sort(a); //快速排序
		for(int b:a)
		{
			System.out.println(b);
		}
举报

相关推荐

0 条评论