[英]String in Java : charAt Function use
可以通過反向循環將原始字符串連接起來來反轉字符串(從str.length-1-> 0開始)
但是為什么這不能正常工作:通過從最后一個位置到第0個位置逐個字符地添加字符:
int i = 0;
while(i<originalStr.length())
{
strRev.charAt(i)=originalStr.charAt(str.length()-1-i);
i++;
}
字符串在Java中是不可變的。 您無法編輯它們。
如果要出於訓練目的而反轉String,則可以創建char[]
,對其進行操作,然后從char[]
實例化String
。
如果您出於專業目的想要反轉字符串,則可以這樣做:
String reverse = new StringBuilder(originalStr).reverse().toString();
strRev.charAt(i) // use to Retrieve what value at Index. Not to Set the Character to the Index.
我們所知道的, String
是Java中的一個immutable
類。 每次嘗試修改任何String
對象時,都會創建一個新的String
對象。
eg :- String abc = "Vikrant"; //Create a String Object with "Vikrant"
abc += "Kashyap"; //Create again a new String Object with "VikrantKashyap"
// and refer to abc again to the new Object.
//"Vikrant" Will Removed by gc after executing this statement.
最好使用StringBuffer
或StringBuilder
執行反向操作。 這兩個類之間的唯一區別是
A) StringBuffer是線程安全的(同步的)。 有點慢,因為每次都需要檢查線程鎖定。
B) StringBuider不是線程安全的。 因此,由於不
Synchronized
,它可以為您提供更快的結果。
有多個第三方Jar可以為您提供諸如Reverse
類的功能以及更多基於字符串的操作Methods
import org.apache.commons.lang.StringUtils; //Import Statement
String reversed = StringUtils.reverse(words);
在您的測試方法中,最佳實踐是使用三重A模式:
安排所有必要的前提條件和輸入。
對被測對象或方法采取行動。
斷言已經發生了預期的結果。
@Test
public void test() {
String input = "abc";
String result = Util.reverse(input);
assertEquals("cba", result);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.