再来求一个JAVA字符串分割的小程序!!!!!

Cbfan 2004-05-05 03:41:03
写一个Java程序,这个程序要包含一个方法,这个方法的作用是重新排列输出一个字符串S1,这个方法还有个参数是S2。写出用Main函数调用这个方法的完整程序。

具体加工过程是:

程序读取一个文本文件s1.txt,把它放在String S1里; 用S2的大小来分割S1的内容,如果S1里面的当前单词长度小于S2,而他和下一个单词的长度加起来又大于S2,则只输出着一个单词;反之,输出这两个单词。

比如S1的内容是:"The 1 before last, just before dinner...", S2的大小是5,则程序输出:

"The 1"
"befor"
"e"
"just"
"befor"
"e"
"dinne"
"r..."



可以用String substring(int start , int end)来做。

...全文
111 14 打赏 收藏 举报
写回复
14 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Cbfan 2004-05-07
不好意思~还是要顶~~
  • 打赏
  • 举报
回复
Cbfan 2004-05-07
受人所托~~我对JAVA不熟啊。:(
  • 打赏
  • 举报
回复
BigBangBug 2004-05-06
支持 dogcai(dogcai)
只是楼主也太....

"但是S1是参数,S2是从文件S2.txt读取的,并没有体现出来啊。" 这样的要求也要别人帮你???算法都给出了,还懒得自己做出来???晕,不要帮csdn当成是用分来换作业的地方!!!
  • 打赏
  • 举报
回复
anguofeng 2004-05-06
高手啊~
这个程序要做的是什么啊~~~~~~~~~`
  • 打赏
  • 举报
回复
marvy 2004-05-06

怎么现在的人越来越懒了?!

如果连一点自己动手的想法都没有,又怎么能够做好程序员:~)
  • 打赏
  • 举报
回复
dogcai 2004-05-06
不对,是应该截成两段的。我是按照楼主的要求“用S2的大小来分割S1的内容,如果S1里面的当前单词长度小于S2,而他和下一个单词的长度加起来又大于S2,则只输出着一个单词;反之,输出这两个单词。”。。这样当然要输出两个了。。

:)我不是“(按理来说应该截成1段)”,是根据楼主的要求哦
  • 打赏
  • 举报
回复
Cbfan 2004-05-06
谢谢,但是S1是参数,S2是从文件S2.txt读取的,并没有体现出来啊。
  • 打赏
  • 举报
回复
caiyanying732 2004-05-05
学习
  • 打赏
  • 举报
回复
satangf 2004-05-05
现在把我的程序奉上,匆忙之中写的不是很好,但基本符合要求。

public class StringSource {
public StringSource() {
}

public void aa(String s, int i) {
java.util.ArrayList arr = new java.util.ArrayList();
try {
while (s.trim().length() > 0) {
int a = 0;
String b = "";
while (true) {
int n = s.indexOf(" ");
if (n == -1) {
n = s.length();
}
a = a + n;
if (a > i) {
if (b.equals("")) {
b = s.substring(0, i);
arr.add(b);
s = s.substring(i);
break;
}
else {
arr.add(b.trim());
break;
}
}
else {
b = b + s.substring(0, n) + " ";
if (s.indexOf(" ") != -1)
s = s.substring(n + 1);
else
s = s.substring(n);
a++;
}
}
}
for (int m = 0; m < arr.size(); m++) {
System.out.println(arr.get(m).toString());
}
}
catch (Exception e) {
}
}

public static void main(String[] args) {
StringSource strs = new StringSource();
String info = "a b c The 1 before last, just before dinner...";
strs.aa(info, 5);
}
}
  • 打赏
  • 举报
回复
satangf 2004-05-05
楼上的程序不严密,只考虑了最多2个单词的情况,如果把你的
String s1 = "The 1 before last, just before dinner...";
换成
String s1 = "a b c The 1 before last, just before dinner...";
就不行了,前面的"a b c"被截成了2段(按理来说应该截成1段)
  • 打赏
  • 举报
回复
dogcai 2004-05-05
至于完整的程序:
public class Hello {
public static void divide(String s1,int s2) {
......//这里用刚才的算法,只是不用在定义s1和s2
}

public static void main(String args[]) {
divide(".....",5);
}
}
  • 打赏
  • 举报
回复
dogcai 2004-05-05
至于文件读写,相信楼主应该会了吧。。
运行的结果
The 1
befor
e
last,
just
befor
e
dinne
r...
Press any key to continue...
  • 打赏
  • 举报
回复
dogcai 2004-05-05
String s1 = "The 1 before last, just before dinner...";
String str;
int s2 = 5;
int i,j;
s1 += " "; // 这一步不能丢
while(s1.indexOf(' ')!=-1) {
i = s1.indexOf(' ');
if(s2 <= i) {
System.out.println(s1.substring(0,5).trim());
s1 = s1.substring(5,s1.length());
}else {
str = s1.substring(i+1,s1.length());
j = str.indexOf(' ');
if((i+j+1)>s2) {
System.out.println(s1.substring(0,i).trim());
s1 = s1.substring(i+1,s1.length());
}else {
System.out.println(s1.substring(0,i+j+1).trim());
s1 = s1.substring(i+j+2,s1.length());
}
}
}
  • 打赏
  • 举报
回复
上海小旋風 2004-05-05
不会,学习,等待......
  • 打赏
  • 举报
回复
相关推荐
课程设计-基于C++的mfc框架的学生社团管理系统(源码+数据库+报告).zip 本系统实现的功能 本程序为单文档应用程序,主程序界面能实现查询社团信息、修改社团信息、删除社团信息、添加社团信息、入团、退团、用户登录、和用户管理功能其中修改社团信息、删除社团信息、添加社团信息和用户管理需要用户登录后才能使用,未登录就点击使用的会会弹出对话框显示您还没有登录,点击登录按钮会弹出用户登录对话框输入正确的用户名称和密码若验证成功则会显示登录成功并显示出您用有的权限高级管理员或者是普通管理员,高级管理员则可以对社团信息进行修改、删除、添加。点击入团按钮会弹出加入社团对话框,在对话框内填上相应的信息后点击确定成功加入后会有相关提示,若没有成功则有可能您输入的社团不存在,点击退团按钮弹出退出社团对话框,输入您要退出的社团名称和学号点击确定如果成功退出会显示成功的标志,否则的话就是您没有假如该社团活着您填的信息不完全。在主程序对话框中可以直接在控件内输入要修改的社团信息,然后点击修改按钮,分别输入控件中的内容然后点击添加按钮,若要添加的社团当前没有的话则添加成功,否则会失败。登录了以后点击用户管理按钮则会弹出用户管理对话框,在该对话框内可以修改用户密码,高级管理员还能注册新用户。
发帖
Java SE
加入

6.2w+

社区成员

Java 2 Standard Edition
社区管理员
  • Java SE
申请成为版主
帖子事件
创建了帖子
2004-05-05 03:41
社区公告
暂无公告