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表示開始截取的第一個字元下標。