import java.util.Scanner;
public class Hello {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
int N = sc.nextInt();
StringBuilder sb = new StringBuilder(str);
System.out.print(sb.reverse().toString());
}
}
вывод должен быть: -
apple
3
ppa
но я получаю полную строку в обратном порядке
elppa
так
Какая польза от "int N = sc.nextInt();" если вы нигде не используете N? Я предполагаю, что это какая-то «само-слепая» проблема, над которой вы будете смеяться, когда внимательно посмотрите на нее.
Вы вообще не разбиваете строку в своем коде. То, что вам нужно, это .substring()
. Поскольку вы не можете обратить слово после выполнения .substring()
в StringBuilder, мы просто создадим собственный обратный метод. Попробуй это:
import java.util.Scanner;
public class Hello {
public static void main(String[] args) {
Scanner sc = new Scanner(System. in );
String str = sc.nextLine();
int n = Integer.parseInt(sc.nextLine());
System.out.print(reverse(str.substring(0, n)));
sc.close();
}
public static String reverse(String text) {
return new StringBuilder(text).reverse().toString();
}
}
Используя строго методы StringBuilder (как вы просили), вы можете сделать:
import java.util.Scanner;
public class SplitReverse {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
int n = Integer.parseInt(sc.nextLine());
StringBuilder sb = new StringBuilder(str);
sb=new StringBuilder(sb.substring(0,n));
System.out.println(sb.reverse());
sc.close();
}
}
Тем не менее, я бы порекомендовал этот:
import java.util.Scanner;
public class SplitReverse {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
int n = Integer.parseInt(sc.nextLine());
StringBuilder sb = new StringBuilder(str.substring(0,n));
System.out.println(sb.reverse());
sc.close();
}
}
Попробуйте этот код. Я решил ту же проблему, я понял это правильно.
import java.util.Scanner;
public class Hello {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
int N = sc.nextInt();
StringBuilder sb = new StringBuilder(str.substring(0,N));
System.out.print(sb.reverse().toString());
}
}
Просто добавьте подстроку
str
, прежде чем поместить ее вStringBuilder