Scanner 类
用于获取键盘录入的数据
public String nextline
通过scanner获取字符串数据
public class sacnner {
public static void main(String
[] args
) {
Scanner sc
= new Scanner(System
.in
);
String line
=sc
.nextLine();
System
.out
.println("line:"+line
);
}
}
如何查看源码
ctrl+xxx
无参构造
alt + /
带参构造
alt +shift +s +o
object类
根类,所有类的继承该类
直接输出对象名,输出底层调用的是该对象的toString()方法, 建议所有子类重写该方法
tostring方法
toString() 方法用于返回该对象的字符串表现。
equals
查看两个对象是否相等
object类中的object比较的是对象的地址是否相等 如果想比较对象的内容是否相等,必须自己重写方法
stu s1
=new stu("hehe",30);
stu s2
=new stu("hehe",30);
System
.out
.println(s1
.equals(s2
));
equals解析
@Override
public boolean equals(Object obj
) {
if (this == obj
)
return true;
if (obj
== null
)
return false;
if (getClass() != obj
.getClass())
return false;
stu other
= (stu
) obj
;
/
if (age
!= other
.age
)
return false;
if (name
== null
) {
if (other
.name
!= null
)
return false;
} else if (!name
.equals(other
.name
))
return false;
return true;
string类
string代表字符串类
字符串的本质就是字符串组
public String(String original) 将字符串封装成字符串对象
public String(char[] value)将字符串组的数据封装成字符对象
public String(char[] value,int offset, int count)将字符串的一部分数据封装成字符串对象
以下几个都不常用:
String s1
=new String ("hello");
System
.out
.println(s1
);
char[] value
={'h','e','l','l','o'};
String s2
=new String(value
);
System
.out
.println(s2
);
String s3
=new String(value
,0,3);
System
.out
.println(s3
);
结果
hello
hello
hel
常用
String s4
="hello";
System
.out
.println(s4
);
String创建对象的特点
a,通过构造方法创建对象 b,通过直接赋值的方式创建对象
通过构造方法创建的字符串对象存在堆内存 通过直接赋值的方式创建的字符串对象是方法区的常量池,为了方便字符串的复用
public class test {
public static void main(String
[] args
) {
String s1
=new String ("hello");
System
.out
.println(s1
);
char[] value
={'h','e','l','l','o'};
String s2
=new String(value
);
System
.out
.println(s2
);
String s3
=new String(value
,0,3);
System
.out
.println(s3
);
String s4
="hello";
System
.out
.println(s4
);
}
}
格式化输出
举例:
int[] arr
= {1,2,3};
输出结果:
[1, 2, 3]。
public class denglu {
public static void main(String
[] args
) {
int[] arr
={1,2,3};
String result
=arrtoString(arr
);
System
.out
.println(result
);
}
public static String
arrtoString(int[] arr
){
String s
="";
s
+="[";
for(int x
=0;x
<arr
.length
;x
++){
if(x
==arr
.length
-1){
s
+=arr
[x
];
}else{
s
+=arr
[x
]+", ";
}
}
s
+="]";
return s
;
}
}
字符串反转
public class denglu {
public static void main(String
[] args
) {
Scanner sc
=new Scanner(System
.in
);
String s
=sc
.nextLine();
String result
=reverse(s
);
System
.out
.println(result
);
}
public static String
reverse(String s
) {
String ss
="";
for(int x
=s
.length()-1;x
>=0;x
--){
ss
+=s
.charAt(x
);
}
return ss
;
}
}
Stringbuilder(返回的是对象)
string本身是不可改变的,它只能赋值一次,每一次内容发生改变,都会生成一个新
的对象,然后原有的对象引用新的对象,而每一次生成新对象都会对系统性能产生影响
stringbuilder 每次操作都是对自身对象进行操作,而不是生成新的对象,其所占空间
会随着内容的增加而扩充,这样,在做大量的修改操作时,不会因生成大量匿名对象而影响系统性能
Stringbuilder 常用类
append
StringBuilder sb
=new StringBuilder();
sb
.append('a');
sb
.append('b');
sb
.append('a').append('b').append('c');
System
.out
.println(sb
);
reverse
sb
.reverse();
stringbuilder—>string的转换(通过to_string方法)
public class printString {
public static void main(String
[] args
) {
StringBuilder sb
=new StringBuilder();
sb
.append('a').append('b').append('c');
String s
=sb
.toString();
System
.out
.println(s
);
}
}
string—>stringbuilder的转换(通过构造方法)
public class printString {
public static void main(String
[] args
) {
String s
="hello";
StringBuilder sb
=new StringBuilder(s
);
System
.out
.println(sb
);
}
}
将数组拼接成一个字符串
public class printString {
public static void main(String
[] args
) {
int[] arr
={1,2,3};
System
.out
.println(pingjie(arr
));
}
public static String
pingjie(int[] arr
){
StringBuilder sb
=new StringBuilder();
sb
.append("[");
for(int x
=0;x
<arr
.length
;x
++){
if(x
==arr
.length
-1){
sb
.append(arr
[x
]);
}else
sb
.append(arr
[x
]).append(", ");
}
sb
.append("]");
String s
=sb
.toString();
return s
;
}
}
使用Stringbuilder对字符串进行反转
public class printString {
public static void main(String
[] args
) {
String name
="abcd1234";
System
.out
.println(fanzhuan(name
));
}
public static String
fanzhuan(String name
){
return new StringBuilder().append(name
).reverse().toString();
}
}
运行结果:
4321dcba
indexOf() 方法有以下四种形式:
public int indexOf(int ch): 返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
public int indexOf(int ch, int fromIndex): 返回从 fromIndex 位置开始查找指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
int indexOf(String str): 返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
int indexOf(String str, int fromIndex): 返回从 fromIndex 位置开始查找指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
contains
public boolean contains(CharSequence s
)当且仅当此字符串包含指定的
char 值序列时,返回
true。
参数:
s
- 要搜索的序列
返回:
如果此字符串包含 s,则返回
true,否则返回
false
抛出:
NullPointerException
- 如果 s 为 null
replaceFirst()
方法使用给定的参数 replacement 替换字符串第一个匹配给定的正则表达式的子字符串。
public String
replaceFirst(String regex
,
String replacement
)