這行出問題了,應(yīng)該是System.out.print(scharAt(i));// s2為空,獲取它的第N個字符當然會出問題了。
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比柳江網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式柳江網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋柳江地區(qū)。費用合理售后完善,十余年實體公司更值得信賴。
第一個問題:String沒有reverse方法,你可以 轉(zhuǎn)成StringBuffer后調(diào)用 第二個問題:s不會變成StringBuffer,因為s沒有參與轉(zhuǎn)換。
首先給你介紹一個類和一個方法,如下:StringBulider類就像一個可變長度的字符串數(shù)組一樣,內(nèi)容和長度都可以被改變,既方便又節(jié)省開銷。reverse()翻轉(zhuǎn)StringBulider對象中的字符串。
不知為何你有這種想法,如果有好的算法可以和我討論下,下面我寫了2個代碼希望能幫到你。
in the old character sequence.大致意思是說,當你調(diào)用了一個StringBuffer對象的reverse方法以后, 它會將反轉(zhuǎn)過來的字符串取代當前字符串。也就是說調(diào)用些方法會將原字符串給反轉(zhuǎn)過來。
StringBuilder類中有一個方法reverse()可以實現(xiàn),像樓上的思路,是reverse這個方法具體實現(xiàn)。不過他寫的代碼是不錯??墒沁€少了一點東西。
在Java中,!=是一種比較運算符,表示“不等于”的關(guān)系。通常用于對兩個變量或表達式進行比較,判斷它們是否不相等。
1 ~(取反)~6 = -7 ~5 = -6 以上是正對二進制位來算 新人學java一周。
~是位運算符,意義是 按位非(NOT)按位非也叫做補,一元運算符NOT“~”是對其運算數(shù)的每一位取反。
邏輯運算符包括 &&、||、!。其中 && 和 || 是雙目運算符,實現(xiàn)邏輯與、邏輯或;!是單目運算符,實現(xiàn)邏輯非。結(jié)果為 boolean 型的變量或表達式可以通過邏輯運算符結(jié)合成為邏輯表達式。
JAVA中&&意思是“條件與”邏輯操作符,使用方法是x&&y,功能描述:x和y均為true,取值是true,否則取值是false。
位運算符:包括:1。&位與符 2。|位或符 3。^位異或符 4。~位取反符 以操作數(shù)12為例。位運算符將數(shù)字12視為1100。位運算符將操作數(shù)視為位而不是數(shù)值。數(shù)值 可以是任意進制的:十進制、八進制或十六進制。
1、StringBuffer類本身有一個實現(xiàn)字符串逆序的方法public StringBuffer reverse();此方法十分方便簡單,查看API即可。
2、使用遞減的for循環(huán),然后用charAt倒序獲取字符串。代碼如下 String str=qwertyuiopfor (int i = str.length()-1; i = 0; i--) {// 字符串下標從0開始,長度-1結(jié)束。倒序所以從長度-1開始,0結(jié)束。
3、使用遞減的for循環(huán),然后用charAt倒序獲取字符串。代碼如下 String str=qwertyuiopfor (int i = str.length()-1; i = 0; i--) { // 字符串下標從0開始,長度-1結(jié)束。倒序所以從長度-1開始,0結(jié)束。
4、用for循環(huán)字符串的長度,用mid取文本中間,從右邊一個個字符取到左邊并輸出就可以。for、len、mid這三個函數(shù)就可以。雖然不知道你問的是哪個語言,但基本每種語言都有這三個函數(shù)。
5、其實不需要用for循環(huán),StringBuffer中已經(jīng)提供了倒置的方法,貌似方法名也是叫reverse。