http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2620这是题目链接:import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Scanner;public class SDUT2618 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
BufferedReader bd = new BufferedReader(new InputStreamReader(System.in));
while(true){
int p = sc.nextInt();
int t = sc.nextInt();
String s = sc.nextLine();
int len = s.length();
int sum = p * t;
String s1 = s.substring(sum, len-1);
String s2 = s.substring(0, sum-1);
String s3 = s1+s2;
System.out.println(s3);
}
} }
为什么老是报错,求解。
JavaString

解决方案 »

  1.   

    String s = sc.nextLine();
    int p = sc.nextInt();
    int t = sc.nextInt();
    换个位置,楼主程序bug太多
      

  2.   

    我跑了一下你的程序。。发现不是这样的。。
    貌似sc.nextline出来的最后是一个换行符,不然我也不知道要怎么输入。另外substring的用法是错的,第二个参数是要取的字符串长度。
        Scanner sc = new Scanner(System.in);
        while (true) {
          String numbers = sc.nextLine();
          String[] numbersArray = numbers.split(" ");
          int p = Integer.parseInt(numbersArray[0]);
          int t = Integer.parseInt(numbersArray[1]);
          String s = sc.nextLine().trim();
          int len = s.length();
          int sum = p * t;
          String s1 = s.substring(sum, len);
          String s2 = s.substring(0, sum);
          String s3 = s1 + s2;
          System.out.println(s3);
        }
      

  3.   

    如果是并列输入的话。。
        Scanner sc = new Scanner(System.in);
        while (true) {
          int p = sc.nextInt();
          int t = sc.nextInt();
          String s = sc.nextLine().trim();
          int len = s.length();
          int sum = p * t;
          String s1 = s.substring(sum, len);
          String s2 = s.substring(0, sum);
          String s3 = s1 + s2;
          System.out.println(s3);
        }
      

  4.   

    还有那个trim()是干什么用的。
      

  5.   

    已经写好了啊。trim就是去掉头尾的空格/换行之类的字符