String类中方法indexOf
参考:详情
append
起到拼接字符串的功能
public class Number1 {
public static void main(String[] args) {
StringBuffer buf=new StringBuffer("Hard ");
String aString = "Waxworks";
StringBuffer app=buf.append(aString,3,4);
System.out.println(app);
}
// public synchronized StringBuffer append(CharSequence s, int start, int end)
// {
// super.append(s, start, end);
// return this;
// }
}
显示结果Hard w
charAt,Character.isDigit(char)
public class Number {
public static boolean isNumeric(String str){
for (int i = 0; i < str.length(); i++){
System.out.println(str.charAt(i));
if (!Character.isDigit(str.charAt(i))){
return false;
}
}
return true;
}
public static void main(String[] args) {
isNumeric("1gaopeng123");
}
}
显示:
1
g
附录:
确认字符串输入是否为数字
使用Character.isDigit(char)判断
返回字符串索引的值charAt
返回char指定索引处的值。 指数范围为0至length() - 1 。 该序列的第一个char值在索引0 ,下一个索引为1 ,依此类推,与数组索引一样。
如果char由索引指定的值是surrogate ,则返回所述替代值。
toString
对于String类
public String toString()
返回此对象本身(它已经是一个字符串!)。
返回 字符串本身
System.out.println(s1);// 相当于System.out.println(s1.toString());
对于包装类
基本类型数据转换为String 类型时 ,调用了对应包装类的toString() 方法
int a=10; System.out.println(“a=”+a.toString);
String 与其它类型数据的连接
进行String 与其它类型数据的连接操作时 ,用 自动调用toString() 方法
Date now=new Date();
System.out.println(“now=”+now); 相当于
System.out.println(“now=”+now.toString());
Object中toString()方法
Object中toString()方法的使用:
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
输出对象引用的时候,相当于调用当前对象toString方法
说明
默认调用当前类的类名,哈希code计算堆的地址值转化为16进制,jvm虚拟地址,String类重写过toString方法,Date类也重写了,还有file,包装类也都重写了toString,返回实体内容信息
自定义类也可以重写toString方法,返回对象实体内容信息
instanceof
作用
严格来说是Java中的一个双目运算符,用来测试一个对象是否为一个类的实例,用法为:判断对象obj是否是类class的实例,判断obj本质是什么类
boolean result = obj instanceof Class
说明
其中 obj 为一个对象,Class 表示一个类或者一个接口,当 obj 为 Class 的对象,或者是其直接或间接子类,或者是其接口的实现类,结果result 都返回 true,否则返回false。
注意:编译器会检查 obj 是否能转换成右边的class类型,如果不能转换则直接报错,如果不能确定类型,则通过编译,具体看运行时定。
如果a instanceof A返回true,则a instanceof B也返回true其中类B是类A的父类,new的是什么,判断之后一定是true
内部原理
把地址原封不动复制过来了,要通过Object类,类型名变化了可以访问Woman类型那部分属性和方法,有风险有可能转换不了,就会报异常ClassCastException
向下转型要是可以的话,new应该是向下转型的那个对象,new一个子类的对象
split
str.split([separator[, limit]])
注意:如果使用空字符串(“)作为分隔符,则字符串不是在每个用户感知的字符(图形素集群)之间,也不是在每个Unicode字符(代码点)之间,而是在每个UTF-16代码单元之间。这会摧毁代理对。
参数
-
separator
指定表示每个拆分应发生的点的字符串。
separator
可以是一个字符串或正则表达式 如果纯文本分隔符包含多个字符,则必须找到整个字符串来表示分割点。如果在str中省略或不出现分隔符,则返回的数组包含一个由整个字符串组成的元素。如果分隔符为空字符串,则将str原字符串中每个字符的数组形式返回。 -
limit
**一个整数,限定返回的分割片段数量。**当提供此参数时,split 方法会在指定分隔符的每次出现时分割该字符串,但在限制条目已放入数组时停止。如果在达到指定限制之前达到字符串的末尾,它可能仍然包含少于限制的条目。新数组中不返回剩下的文本。
返回值
返回源字符串以分隔符出现位置分隔而成的一个 Array
Java String equals() 方法
equals() 方法用于将字符串与指定的对象比较。
源码分析
equals和==的比较
语法
public boolean equals(Object anObject)
参数
anObject – 与字符串进行比较的对象。
返回值
如果给定对象与字符串相等,则返回 true;否则返回 false。
实例
public class Test {
public static void main(String args[]) {
String Str1 = new String("runoob");
String Str2 = Str1;
String Str3 = new String("runoob");
boolean retVal;
retVal = Str1.equals( Str2 );
System.out.println("返回值 = " + retVal );
retVal = Str1.equals( Str3 );
System.out.println("返回值 = " + retVal );
//表示String Str1,new String("runoob");两个表示一样
}
}
以上程序执行结果为:
返回值 = true
返回值 = true
具体代码参考:参考代码
valueOf
下面是代码实例的演示:
包装类、基本数据类型转化为String类型
public class Test{
public static void main(String args[]){
Integer x =Integer.valueOf(9);
Double c = Double.valueOf(5);
Float a = Float.valueOf("80");
Integer b = Integer.valueOf("444",16); // 使用 16 进制
System.out.println(x);
System.out.println(c);
System.out.println(a);
System.out.println(b);
}
}
编译以上程序,输出结果为:
9
5.0
80.0
1092