Без прохождения последовательности char есть ли способ отменить String
в Java
Простой способ свернуть строку
Ответ 1
Попробуйте это,
String s = "responses";
StringBuilder builder = new StringBuilder(s);
System.out.println(builder.reverse());
Ответ 2
Вы можете использовать метод StringBuilder#reverse()
:
String reverse = new StringBuilder(originalString).reverse().toString();
Ответ 3
Используйте метод StringBuilder's
или StringBuffer's
... reverse()
public class StringReverse
{
public static void main(String[] args)
{
String string=args[0];
String reverse = new StringBuffer(string).reverse().toString();
System.out.println("\nString before reverse: "+string);
System.out.println("String after reverse: "+reverse);
}
}
StringBuffer
поточно-безопасный, где StringBuilder
Небезопасный..... StringBuilder
был введен с Java 1.5, чтобы быстрее выполнять те операции, у которых нет Concurrency, чтобы беспокоиться о....
Ответ 4
Попробуйте метод reverse():
StringBuilder stringName = new StringBuilder();
String reverse = stringName.reverse().toString();
Ответ 5
Вы можете использовать String buffer для изменения строки.
public String reverse(String s) {
return new StringBuffer(s).reverse().toString();
}
Еще один интересный способ сделать это - рекурсия.
public String reverse(String s) {
if (s.length() <= 1) {
return s;
}
return reverse(s.substring(1, s.length())) + s.charAt(0);
}
Ответ 6
Вы можете использовать StringBuilder..
String word = "Hello World!";
StringBuilder sb = new StringBuilder(word);
System.out.print(sb.reverse());
Ответ 7
"Без прохождения последовательности char.." - один простой способ:
public String reverse(String post)
{
String backward = "";
for(int i = post.length()-1; i >= 0; i--) {
backward = backward + post.substring(i, i+1);
}
return backward;
}
Ответ 8
Это способ сделать это с помощью рекурсии -
public static String reverse(String s1){
int l = s1.length();
if (l>1)
return(s1.substring(l-1) + reverse(s1.substring(0,l-1)));
else
return(s1.substring(0));
}
Ответ 9
Использование минимальной поддержки API. Простой алгоритм.
static String reverse(String str) {
char[] buffer = str.toCharArray();
for (int i = 0; i < buffer.length/2; ++i){
char c = buffer[i];
buffer[i] = buffer[buffer.length-1-i];
buffer[buffer.length-1-i] = c;
}
return new String(buffer);
}
Ответ 10
Здесь у меня есть образец того же метода подстроки и o (n) без использования каких-либо nethods из строки. Я знаю, что использование подстроки будет содержать полную строку памяти.
for(int i = 0; i < s.length(); i++) {
s = s.substring(1, s.length() - i) + s.charAt(0) + s.substring(s.length() - i);
System.out.println(s);
}
Это может помочь вам!
Ответ 11
Я не видел простого способа. Вот подходящий способ:
Использование цикла:
String d = "abcdefghij";
char b[] = new char[d.length()];// new array;
int j=0; // for the array indexing
for(int i=d.length()-1;i>=0;i--){
b[j] = d.charAt(i); // input the last value of d in first of b i.e. b[0] = d[n-1]
j++;
}
System.out.println("The reverse string is: "+String.valueOf(b));
Выход
The reverse string is: jihgfedcba
Простая логика:
array[i] = array[n-i];
где я - итерация, а n - общая длина массива
Ответ 12
public class RevString {
public static void main(String[] args) {
String s="jagan";
String rev="";
for (int i=s.length()-1;i>=0;i--) {
rev=rev+s.charAt(i);
}
System.out.println("Reverse String is: "+rev);
}
}