Java基础小细节

初学者的一点点小见解

很感谢你可以点开这篇文章,这是我第一次写这些东西,很零碎,所以似乎杂乱的一匹,收录了我刚接触java的一些困惑和我的思路。希望像我一样的萌新可以有所启发。

基本类型的转换

首先是基本类型和字符串相互转化

基本类型 转换为 字符串 有三种方法:

  1. 使用包装类的 toString() 方法
  2. 使用String类的 valueOf() 方法
  3. 用一个空字符串加上基本类型
    将字符串转换成基本类型有两种方法:
  4. 调用包装类的 parseXxx 静态方法
  5. 调用包装类的 valueOf() 方法转换为基本类型的包装类,会自动拆箱

1.String to char:
String s = input.next();
char[] chars =s.toCharArray();
将字符串转化为char型并存入char数组

2.char to String:
方法一:String str=String.valueOf(char);
   
   可把char数组转化为String字符串
     String str=String.valueOf(char[] ch);
   
方法二:可在String初始化时传入char数组进行转化:
     String str=new String(char[] ch);

方法三:String str=‘a’+“”;
   
方法四:String str=Character.toString(‘c’);

String和int,short,long,float,double之间的转换:
1、String→int: int a=Integer.parseInt(str);
  如上, 类型 变量名 = 包装类.parse类型(String的名字);
2、int→String:String str=Integer.toString(int);
  如上, String str = 包装类.toString(类型);
  
int和char之间的转换:
1、int→char:单个数字转换为char ch=(char)(48+int);
       大于9的数字转化(int→String→char)
         String str=Integer.toString(int);
         char[] ch=str.toCharArray();

2、char→int:单个数字字符转化为int:int a=(int)(‘5’-48);
       字符数组转化为int(char→String→int):
         char []ch=new ch[]{‘1’,‘2’,‘3’}
         String str=String.valueOf(ch);
         int a=Integer.parseInt(str);
         
int和Integer之间的转换:
1、Integer→int:单个Integer类型数据进行转换:
        Integer i=new Integer(5);
        int in=i.intValue();
2、int→Integer:
       int i=6;
       Integer in=new Integer(i);
   或者:
       Integer in=Integer.valueOf(i);

其中,强制类型转化的顺序为:
byte→short→int→long→float→double

基本小概念

一些我平时比较困惑的概念差异
1.有的单词后面加(),有的不加,例如“.length和.length()”
需要加()的是方法(或者叫函数)
不加() 的叫属性
方法—通过执行 而 属性—通过访问
方法是对未知的东西去执行,求结果
属性是对已知的东西读取出来
例如:
String str=“ddd”;
str.length();//字符串长度
String []str1=new String[2];
int s=str1.length;//数组的容量

用到return语句时,要注意function()和 function 的区别,前者返回的是函数执行完的值, 后者直接返回的是函数(这个通常用于把函数当做参数传递另一个函数中去)。

针对数组提供了length属性来获取数组的长度
针对字符串提供了length()方法来获取字符串的长度
针对泛型集合类提供了size()方法来获取元素的个数

2.关于nextInt
nextInt()只读取数值,剩下"\n"还没有读取,nextLine()会读取"\n",并结束

如果想要在nextInt()后读取一行,就得在nextInt()之后额外加上in.nextLine()

3.关于空格和回车
\r回车是将光标移到一行的前面

\n是移到下一行

//java中nextInt()不会读取\n,,nextline()读入\n,但并不会成为返回的字符。
while(sc.hasNext()) {
String a=sc.nextLine();
int b=sc.nextInt();
System.out.println(a);
System.out.println(b);
}
上面这个例子,读入第二行之后,(数字+\r(未读入\n))还会剩余一个\n
则第二次输入时,nextLine会先读入\n,,导致第二次输入报错,所以应该在int后加一句 “String c=sc.nextLine()”

一些小方法

substring()方法

String num = “0123456789”;
String ab1 = num.substring(2, 6);// 2345
String a = num.substring(3);//3456789
取左不取右

int初始化为最小

int a=Integer.MIN_VALUE;
//这个是初始化为最小
//还有一件事!!!
System.out.println(a);
//-2147483648
int num=Math.abs(a);
//这个是取绝对值
System.out.println(num);
//-2147483648

最小的绝对值超出了最大的范围,比最大的大1,所以溢出以后变为最小值
因为最大值为2147483647,而绝对值为2147483648已经溢出,+1后变为最小值

数组排序

Arrays.sort(a); a为数组//按照升序排列。

产生随机数

产生10以内的随机数
int x = (int)(Math.random()*10);

精确到小数点后两位

DecimalFormat -> String
java.text.DecimalFormat df = new java.text.DecimalFormat("#.##");
double d = 3.14159;
System.out.println(df.format(d));

//java.math.BigDecimal
BigDecimal bd = new BigDecimal(“3.14159265”);
bd = bd.setScale(2,BigDecimal.ROUND_HALF_UP);

System.out.printf("%.2f", optimalPrice);

断言

public static void main(String[] args) {
    String s = null;
    assert s!=null?true:false;
    assert false;
    System.out.println(“end”);
  }
  
assert [boolean 表达式]
如果[boolean表达式]为true,则程序继续执行。
如果为false,则程序抛出AssertionError,并终止执行。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值