Java编程,在空格前后添加数字.同时换行时数字自动增加

输入一串字符串,比如asdsaf asdasda dasdasda asdasdad dsafsadsa asfaqeqe saddadas。
然后输入一个数字让字符串按输入的数字自动换行,比如输入字符串20,则输出为:
asdsaf asdasda dasda
sda asdasdad dsafsad
sa asfaqeqe saddadas
该函数的返回值为预处理后的文本。预处理后的文本为每一节,及其所在的行号。中间以分号隔开。若一个节跨越了多行,则行号用逗号隔开,并从小到大进行排列。
比如以上结果就为:asdsaf【1】; 【1】,asdasda【1】; 【1】,dasdasda【1,2】; 【2】;
asdasdad【2】; 【2】; dsafsadsa【2,3】; 【3】; asfaqeqe【3】; 【3】; saddadas

尽量给一个详细的思路,或者完整的代码。我在自动换行加一这里遇到了一些问题。
以下是本人的部分代码:
import java.util.Scanner;

public class HuanHnag1 {

public static void main(String[] args) {
    Scanner sc=new Scanner(System.in);
    System.out.println("输入字符串");
    String str=sc.nextLine();
    int count=0;
    System.out.println("输入换行数字");
    int x=sc.nextInt();
    for(int i=0;i<str.length();i++) {
        System.out.print(str.charAt(i));
        count++;            
        if(count==x) {
            System.out.println();
            count=0;
        }


    }

    System.out.println();
    for(int row=1;row<=4;row++) {
        String s1=str.replaceAll(" ","("+row+");"+" "+"("+row+");");
        System.out.print(s1);
    }   

}
public static String[] StrToArray(String str)
{
    String[] str_array = new String[str.length()];
    for (int cnt = 0; cnt < str.length(); cnt++)
    {
       // str_array[cnt] = str[cnt];
    }
    return str_array;
}

}


    public static void main(String[] args)
    {
        String input = "asdsaf asdasda dasdasda asdasdad dsafsadsa asfaqeqe saddadas";
        int lenth = 20;

        // 多个空格替换为1个之后trim
        input = input.replaceAll(" +", " ").trim();

        String pre = input.replace(" ", "(%s);(%s);");
        System.out.println(input);
        System.out.println(pre);

        // 切分为数组
        String[] inputArr = input.split(" ");
        // 空格数量
        int count = inputArr.length - 1;

        int pos = 0;
        int start;
        int end;
        String startShow;
        String endShow;

        List<String> replace = new ArrayList<String>();
        for (String arr : inputArr)
        {
            start = pos / lenth + 1;
            pos = pos + arr.length();
            end = pos / lenth + 1;

            // 空格长度为1
            pos++;
            if (start == end)
            {
                startShow = start + "";
                endShow = end + "";
            }
            else
            {
                startShow = start + "," + end;
                endShow = end + "";
            }
            // 打印原始数组字符以及待替换数据
            System.out.println(String.format("%s   %s to %s", arr, startShow, endShow));
            if (replace.size() < count * 2)
            {
                replace.add(startShow);
                replace.add(endShow);
            }
        }
        // 打印最后结果
        System.out.println(String.format(pre, replace.toArray(new String[0])));
    }

运行结果
图片说明

回答完毕,希望能帮到你!

本人码云 https://gitee.com/00fly/ 欢迎访问!

class Untitled {
    public static void main(String[] args) {
        String s = "asdsaf asdasda dasdasda asdasdad dsafsadsa asfaqeqe saddadas";
        int n = 40;
        int pos = 0;
        int pos1 =  s.indexOf(' ', pos);
        if (pos1 == -1) pos1 = s.length();
        String word = s.substring(pos, pos1);
        String en = "[" + (pos / n + 1) + "]";
        System.out.println(word + en);
        while (s.indexOf(' ', pos) != -1)
        {
            pos = s.indexOf(' ', pos) + 1;
            pos1 = s.indexOf(' ', pos);
            if (pos1 == -1) pos1 = s.length();
            word = s.substring(pos, pos1);
            String pre = "[" + (pos / n + 1) + "]";
            en = "[";
            for (int i = pos / n + 1; i <= pos1 / n + 1; i++)
                en += i + ",";
            en = en.substring(0, en.length() - 1);
            en += "]";
            System.out.println(pre + word + en);
        }
    }
}

asdsaf[1]
[1]asdasda[1]
[1]dasdasda[1,2]
[2]asdasdad[2]
[2]dsafsadsa[2,3]
[3]asfaqeqe[3]
[3]saddadas[3,4]

图片说明

图片说明
这样的吗

 import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;

public class HuanHang1 {

public static void main(String[] args) throws IOException {
    //字节流转换字符流
    PrintWriter pw = new PrintWriter("e:\\11.txt");
    FileReader fr = new FileReader("e:\\11.txt");
    BufferedReader br = new BufferedReader(fr);     


    Scanner sc=new Scanner(System.in);
    System.out.println("输入字符串");
    String str=sc.nextLine();
    int count=0;
    System.out.println("输入换行数字");
    int x=sc.nextInt();
    for(int i=0;i<str.length();i++) {

       pw.print(str.charAt(i));
        count++;            
        if(count==x) {
            pw.println();
            count=0;
        }

    }
    pw.close();
    //读取一行数据
    String s = br.readLine();
    int j = 1;

    while (s != null) {

        s  = s.replaceAll(" ","("+j+");"+" "+"("+j+");");;

        System.out.println(s + ",");

        s = br.readLine(); 
        j ++;
    }
    br.close();
    fr.close();

}

}