今天学习了String的一些方法(length,charAt,equals,substring,toUpperCase),UUID的randomUUID()方法以及 位运算符(&,|,~,^,<<,>>)、三目运算符和短路 不短路运算。
编程大佬养成计划%2…
1. 两个数字交换
方法一:定义一个变量temp,temp=a; a=b; b=temp;
方法二:按位异或运算
方法三:如下段代码
public class B {
public static void main(String[] args) {
int a=9,b=12;
System.out.println("交换前a="+a +" b="+b);
a=a+b;
b=a-b;
a=a-b;
System.out.println("交换后a="+a +" b="+b);
}
}
2. String的方法
String a=input.next();
a.length(); 字符串长度
a.charAt(); 截取第几位
a.equals(); 内容比较
a.subString(0,4); 截取的是前四位 0,1,2,3
a.to.UpperCase(); 将小写字母转为大写
String code1=new String(" "); //内存新开辟空间保存
其中,需要注意的是==和equals的区别,==比较的是内存地址,equals比较的是内容,举个例子
public class I {
public static void main(String[] args) {
String incode1="MAx9";//存入字符串池
String incode2="MAx9";
System.out.println(incode1==incode2);
System.out.println(incode1.equals(incode2));
System.out.println("---------------------");
String code1=new String("FG67");//内存新开辟空间保存
String code2=new String("FG67");
System.out.println(code1==code2);
System.out.println(code1.equals(code2));
}
}
code1与code2内存地址不一样,但都=FG67,用双目运算符==比较,结果为false,用equals则可避免这种情况。
3. UUID类
String ran=UUID.randomUUID().toString();方法产生32位随机字母+数字组合,通过toString(),变成String字符串类型,记得导入包!
import java.util.UUID;
public class K {
public static void main(String[] args) {
String code=UUID.randomUUID().toString();
String code2=code.substring(0,5);//截取前五位
String code3=code2.toUpperCase();//转为大写
System.out.println("车牌号为:陕A "+code3);
}
}
4. 位运算符
& 按位与运算,全1才为1,可用来判断奇偶 &1==0为偶数,==1为奇数
| 按位或运算,全0才为0
~ 取反
^ 按位异或运算,相同则为0,不同则为1,可用来两个数交换
<< 按位左移
>> 按位右移
- 短路与运算&&和不短路与运算&
public static void main(String[] args) {
//短路与运算
int b=3;
boolean is2=10<7 && ++b==7;
System.out.println(is2);
System.out.println(b);
//不短路与运算
int a=6;
boolean is=10<7 & ++a==7;
System.out.println(is);
System.out.println(a);
}
}
2. 按位与判断奇偶
public class L {
public static void main(String[] args) {
int a=5;
int b=4;
int result=a&b;
System.out.println(result);
//按位与运算可以用来判断是否为奇偶数,&1==0为偶数,==1为奇数
System.out.println(a+"是偶数?"+((a&1)==0));
System.out.println(b+"是奇数?"+((b&1)!=0));
}
}
3.按位异或交换两个数字
public class N {
public static void main(String[] args) {
int a=345;
int b=123;
a=a^b;
b=a^b;
a=a^b;
System.out.println(a);
System.out.println(b);
}
}
4.<<按位左移 ×2的几次方
>>按位右移 \2的几次方
public class O {
public static void main(String[] args) {
int num=13;
System.out.println(num<<1);//num*2的一次方
System.out.println(num<<2);
System.out.println(num<<3);//num*2的三次方
System.out.println(num<<4);
System.out.println("!!!!!!!!!!!!!!");
int number=1024;
System.out.println(number>>1);//num\2的一次方
System.out.println(number>>2);
System.out.println(number>>3);
System.out.println(number>>4);
}
}
5. 三目运算符
关系表达式?表达式1(成立):表达式2(不成立)
import java.util.Scanner;
public class P {
public static void main(String[] args) {
System.out.println("请输入一个数");
Scanner input=new Scanner(System.in);
int number=input.nextInt();
//三目运算符
String result=((number&1)==0)?"偶数":"奇数";
System.out.println(number + " is" +result);
}
}