输入一串字符串,比如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();
}
}