亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何打印帶有用戶占用的空格的字符串?

如何打印帶有用戶占用的空格的字符串?

長風秋雁 2024-01-25 15:15:45
我正在嘗試連接 2 個字符串。我已經在代碼中聲明了一個字符串,并將另一個字符串作為用戶輸入。我需要進行哪些更改才能打印這些連接的字符串。以下是我嘗試過的:String s = "Java ";Scanner sc = new Scanner(System.in);System.out.println("Enter user string:");String s2 = sc.nextLine(); //**user input taken:** is the best.//**for concatenation**s2=s+s2;System.out.println(s2);輸出:預期結果:Java 是最好的。實際結果:Java是
查看完整描述

4 回答

?
料青山看我應如是

TA貢獻1772條經驗 獲得超8個贊

您的代碼使用 Java 1.8 從控制臺運行得很好。

但是,在等號的左側和右側重復使用相同的指針可能會引入一些奇怪的行為。我專門談論這一行:

s2=s+s2;

s2本身已經是一個指針,它指向內存中分配的對象。并且您試圖在訪問該指針的同時重新分配它。話雖這么說,此類問題通常在現代 Java 中處理得很好,所以我不確定您正在運行哪個版本以及在哪個 IDE(如果有)下運行。

但是,請注意,您根本不需要這樣做。您可以簡單地打印您想要連接的內容s2

System.out.println("Java "+s2);

不需要重新分配,也沒有s1必要。


查看完整回答
反對 回復 2024-01-25
?
青春有我

TA貢獻1784條經驗 獲得超8個贊

它將是 System.out.println(s + s2);

啟動并聲明一個新變量而不是重用 s2 會更明智。你可以使用 s3 = s + s2;


查看完整回答
反對 回復 2024-01-25
?
猛跑小豬

TA貢獻1858條經驗 獲得超8個贊

在我看來,唯一的可能性是,如果您的輸入在輸入字符串中有可用的結束行字符。您是鍵入輸入還是使用復制粘貼進行輸入?如果是,請嘗試通過鍵入每個字符來手動輸入。



查看完整回答
反對 回復 2024-01-25
?
HUWWW

TA貢獻1874條經驗 獲得超12個贊

嘗試了這個并執行了:

System.out.printf(s);

while(sc.hasNext()==true)

{

s2=sc.next();

System.out.printf(s2+" ");

}


查看完整回答
反對 回復 2024-01-25
  • 4 回答
  • 0 關注
  • 213 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號