Java 反向打印前N个字符
输出应为:-Java 反向打印前N个字符,java,import,output,Java,Import,Output,输出应为:- 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 StringB
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
像这样代码中根本没有拆分字符串。您需要的是一个
.substring()
。由于在StringBuilder上执行.substring()
后无法反转单词,因此我们将创建自己的反转方法。试试这个:
elppa
严格使用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();
}
}
但是,我建议您:
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();
}
}
在将其放入
StringBuilder
之前,只需使用子字符串str
“int N=sc.nextInt();”如果您在任何地方都不使用N,它有什么用途?我想这是一个“自盲”的问题,当你看得很清楚的时候,你会嘲笑它。谢谢@Spectric
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();
}
}