string valueof(java问题 String.valueOf(i))

本文目录
- java问题 String.valueOf(i)
- String.valueOf()与text.getText().toString()有什么区别啊
- c# 转为string的方法String.valueOf(Object)和(String)object方法,有什么不同,如何将转换的类型为Null
- String.valueOf()
- java String.valueOf(null)为什么会报空指针
- String.valueof;和String 是= ““+11;的区别
- String str=String.valueOf(n);
java问题 String.valueOf(i)
String 类中封装的方法,作用就是将括号里面这个 i 的值转换成一个 String 类型的值
String.valueOf()与text.getText().toString()有什么区别啊
String.valueOf() 是将基础数据类型转换成字符串类型
text.getText().toString() 不知道你这个text是哪个类
如果是TextView 或者是EditText的话,是获取这个控件,或者是输入的字符串
c# 转为string的方法String.valueOf(Object)和(String)object方法,有什么不同,如何将转换的类型为Null
不存在String.valueOf函数。
static void Main(string args)
{
object o = "s";
string s1 = o.ToString();
string s2 = Convert.ToString(o);
//要求赋值时候为string类型,不然运行报错
string s3 = (string)o;
//都是输出s
Console.WriteLine(s1);
Console.WriteLine(s2);
Console.WriteLine(s3);
Console.ReadLine();
}
String.valueOf()
可以简单的说,能正常使用的方法有两种:
第一种是题主你说的这种,通过对象调用的方法,需要实例化对象才能调用;
第二种是直接通过类名.调用的方法,为静态方法,不需要实例化对象就可以直接调用。
PS:为什么这两种方法的调用方式不一样,这涉及到Java虚拟机的内存机制,有些跑题,我大致说一下,Java虚拟机执行程序的时候,会把内存划分为三个部分(大致):堆、栈、方法区。静态方法和类的信息是放在方法区里的,而对象被实例化出来则放在堆中。类加载的时候就已经有了静态方法,通过 类名.静态方法 就可以调用,这个时候,还没有类的对象,通过类名.方法的方式是找不到普通方法的;
PSPS:通过对象也是可以调用静态方法的,但是这样做实在是多此一举,很多开发工具的编译器会直接提示你,不建议这样使用。
java String.valueOf(null)为什么会报空指针
Object o = null;
String a = String.valueOf(o);
//这样的调用是没有问题的,调用的实现是你描述的实现。
String b = String.valueOf(null);
这样调用的话默认调用的实现是:
public static String valueOf(char data) {
return new String(data);
}
所以会报错的
valueOf有多个重载方法的
String.valueof;和String 是= ““+11;的区别
关于字符串的+操作,单纯的String s ="" +11;编译器会看做常量""和常量11的拼接操作,常量计算最快;
String.valueOf会调用方法,速度上会稍慢于常量+操作;
另外,如果是这样:
String str = "";
String s = str+11;
就不是常量+操作了,会通过SringBuilder(JDK1.6还是1.5版本开始用StringBuilder替换StringBuffer来实现字符串+)的append操作来拼接。
耗时上看,常量+操作 最快,String.valueOf次之,字符串对象+操作最慢。
可以通过javap -c 看看具体操作步骤,也可以通过测试代码直观比较耗时:
Java code
public static void main(String args) {
long t = System.currentTimeMillis();
for (int i = 0; i 《 1000000; i++) {
String s0 = String.valueOf(11);
}
System.out.println("耗时" + (System.currentTimeMillis() - t));
t = System.currentTimeMillis();
for (int i = 0; i 《 1000000; i++) {
String s = "" + 11;
}
System.out.println("耗时" + (System.currentTimeMillis() - t));
String str = "";
t = System.currentTimeMillis();
for (int i = 0; i 《 1000000; i++) {
String s = str + 11;
}
System.out.println("耗时" + (System.currentTimeMillis() - t));
}
String str=String.valueOf(n);
1. String str=String.valueOf(n);
这个语句的意思是,返回String类型的n的值。n现在是long类型,需要想转换成String类型,这时候依就用这个语句。
2. 下面是注释,如果不理解,请追问。
public class Test4032{
public static void main(String args ){
int ri, repeat;
int digit;
long n, temp, pow;// temp, pow都没有被调用。
Scanner in=new Scanner(System.in);
repeat=in.nextInt();//取值:他会把你的输入,以int类型保存到repeat变量里。
for(ri=1; ri《=repeat; ri++){//根据你上次的输入,循环repeat次。
n=in.nextLong();//再取值:这次是以long类型取值。
n=Math.abs(n);//取long类型的绝对值
String str=String.valueOf(n);//把long类型转换成为String类型,因为下面他需要调用str.charAt(i)这个方法。
for(int i=0;i《str.length();i++){//把转换为String类型的变量扫描一遍。
digit=str.charAt(i)-’0’;
//最简单的理解是,把转换成String类型的数字的每一位都转换成int类型。比如123456,它会循环6次,第一次循环str.charAt(i)-’0’结果是1,第二次循环结果是2,以此类推。
System.out.println(digit+" ");
//最后输出结果。
}
System.out.println();
}
}
}

更多文章:
在from子句中可以出现(如何在from 子句中嵌套查询下面的语句在access中出错!)
2026年10月11日 05:20
countif函数统计个数怎么用(countif函数怎么用 详解Excel中countif函数的使用方法)
2026年10月11日 03:30
正则匹配数字之前的字符(正则表达式如何匹配前面是数字、中间是“/”、后面也是数字,就像2/3专业的模式)
2026年10月11日 03:00
orlnsertbootmediinselected(我电脑开机显示这个是什么意思or insert boot media in select)
2026年10月10日 23:00
display的用法(display是什么意思 详解display的含义和用法)
2026年10月10日 22:00
html全部居中代码(怎么让网页居中显示,html如何让网页居中)
2026年10月10日 21:10




