1 char型 单个字符的类型 使用单引号 只能指一个字符(或者'\u0041'这种形式)
这种类型可以转成整型,可以比较大小(小写大于大写 汉字大于字母)
2 逃逸字符 就是要使用“反斜杠+字母”来显示的 比如回车 换行 回退 下一个制表位之类的动作
3 包裹类型 比如boolean类型的包裹就是Boolean int的类型是Integer。可以使用这种包裹获得一些信息,比如Integer.MAX_VALUE
另外,这些包裹库里有很多函数,都很有用。
4 字符串变量是字符串的管理者而不是拥有者(类似数组)
String s = new String("Hello World")
new一个字符串 把它交给一个字符串变量(创建一个string对象,用“Hello World”初始化这个对象,创建管理这个对象的变量s,让s管理这个字符串)
String s="hello world"
应该也是可以的
5
in.next() 读入一个单词 以空格 tab 和换行作为标志
in.nextLIne() 读入一整行
6 字符串不能用==比较相同,因为字符串类型的特殊性(即管理者而非所有者),==比较实际上比较的是“是否管理的是同一个字符串”
这里应该使用s.equals() 这个函数比较内容
7
compareTo() 比较两个字符串大小
length() 获取字符串长度
charAt()获取字符串某个位置上的字符
substring()获得子串 可以获得从一个数字到最后的子串 也可以获得两个位置之间(第一个数字开始,到第二个数字之前 比如24 会输出23)的子串
以上函数,无法改变字符串本身,而是制造一个新的字符串
8 高版本可以使用switch-case中使用字符串
9
package nohello;
import java.util.Scanner;
public class s170414 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// int[] arr=new int[20];
String out = new String("");
for(int i=0;i<20;i++)
{
String s=in.next();
char ch = s.charAt(s.length()-1);
if(ch=='.')
{
//实际上,如果只有一个点 是什么都不输出。但是题里并没说
if(s.length()==1)
break;
out+=(s.length()-1);
break;
} else {
out+=s.length()+" ";
}
}
in.close();
System.out.println(out);
// for(int i=0;i<arr.length;i++)
// {
// String s=in.next();
// char ch = s.charAt(s.length()-1);
// if(ch=='.')
// {
// arr[i]=s.length()-1;
// break;
// } else {
// arr[i]=s.length();
// }
// }
// in.close();
// String out = new String("");
// for(int i=0;i<arr.length;i++)
// {
// if(arr[i]>0)
// {
// out+=arr[i]+" ";
// } else {
// break;
// }
// }
// System.out.println(out.trim());
}
}
——异或运算
异或运算是两个整型之间的计算,应该是转成二进制然后按位异或运算
——strng char int互相转化
字符串转成int 使用Integer.parseInt
Integer.parseInt加一个系数可以把16进制的转成10进制
——math.pow
这货算出来的是一个double类型(应该是),所以要使用int类型就要转换
三元运算符