javastring赋值
‘壹’ java中字符串赋值问题
Java运行时会维护一个String Pool(String池, String常量池, 字符串缓冲区)
String池用来存放运行时中产生的各种字符串,并且池中的字符串的内容不重复。
而一般对象不存在这个缓冲池,并且创建的对象仅仅存在于方法的堆栈区
String s = "accp";
创建s之前系统会先在"池子"中查找是否已经存在这个字符串, 如果存在则直接符号该字符串的句柄
如果不存在, 系统会创建一个新"accp"字符串, 并返回句柄, 以后再有"accp"被要求创建, 系统不会创建新的,而是直接返回已经存在的字符串的句柄
String s = new String("accp");
系统不会去"池子"中查找, 直接在内存中新开辟一块空间, 初始化为"accp",并返回句柄
‘贰’ java 字符串变量赋值例如 String a="abc"; String b; b=a; b="
Stringa="abc";//定义了一个"abc"字符串,a指向这个字符串
Stringb;
b=a;//使b也指向a现在指向的那个字符串("abc")
b="abcd";//定义了一个"abcd"字符串,b指向这个新的字符串
在内存中大致的示意图如下:
所以最后 a =“abc”,b=“abcd”
java中字符串是一个较为特殊的存在,如果感兴趣可以找资料详细了解
Java中字符串内存位置浅析
触摸java常量池
‘叁’ java中 输入字符串怎么给String数组赋值
因为你第一个for循环后i的值已经变成了2 即i=2
而你的数组的长度是2 下标最多是1 在下面的if判断里面你直接使用filenames[i] 此时的i=2 当然错误
java.lang.: 2
‘肆’ java String赋值
你定义的m是String类型。
m[3]中m是数组类型。
要用string直接替换的话,先chatAt(2),找出该位置的字符在进行替换。
如:
String m = new String("123456");
m=m.replace(m.charAt(2), '9');
System.out.println(m);
输出结果:129456
‘伍’ java用scanner给string赋值问题
1》”String y = input.nextLine();改为String y=input。next();
2》然后判断符号的语句里面y=="+"改为y.equals("+");
3》对于其他的什么/ * - 也按着上面的修改,那么你的程序可以正常的运行了。
4》附上修改后的代码。
import java.util.Scanner;
public class test {
public static void main(String[] args) {
int x = 1;
Scanner input = new Scanner(System.in);
System.out.println("请输入第一个操作数: ");
int data1 = input.nextInt();
System.out.println("请输入运算符号: ");
String y =input.next(); // 为什么把这句话跳了过去
if (y.equals("+")) {
x = 1;
}
if (y.equals("-")) {
x = 2;
}
if (y.equals("*")) {
x = 3;
}
if (y.equals("/")) {
x = 4;
}
System.out.print(x);
System.out.print("请输入第二个操作数:");
int data2 = input.nextInt();
int result = 0;
switch (x) {
case 1:
result = data1 + data2;
break;
case 2:
result = data1 - data2;
break;
case 3:
result = data1 * data2;
break;
case 4:
result = data1 / data2;
break;
}
System.out.println(data1 + " " + y + " " + data2 + " = " + result);
}
}
‘陆’ java中 字符串赋值问题
你的m[][] = null; 当然会报空啊
String m[][] = new String[10][10];就行了
‘柒’ Java:请教关于String对象的重新赋值
各个原始字符串可以想象成存放在公共的储存池中,比如说"a","b",在储存池里面是独立的单元,而字符串"ab"相当于将这"a","b"的储存单元共享,并且在内存中单独开辟了一个空间来储存"ab"这个字符串.可以理解为C语言的指针.新开辟出来的空间储存的是指向"a","b"的地址.所以一旦对"ab"进行任何修改,那么内存单元需要重新开辟.例如现在"ab"变成"aba",那么"aba"的内存地址就和"ab"不一样了
‘捌’ java如何将一个字符串值赋值给string 数组
你先要定义数组的空间 才能给数组赋值
phone=(String) hashmap.get("C_RECEIVER");
按照你给的代码 你的值肯定存在了HashMap中
Map<String,Object> obj=new HashMap<String,Object>();
obj.put("C_RECEIVER","xxx");
‘玖’ JAVA中怎么把string类型的变量的一部分赋值给另一个string变量
1.
String temp = "abcdefg";//将abc赋值给str
String str = temp.substring(0, 2);//0表示所要截取的第一个字符下标,2表示最后一个。
2.
String temp = "abcdefg";//将c后面的全部给str
String str = temp.substring(3);//3表示开始截取的第一个字符下标。