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();
    }
}