求一个关于字符串分割的简单Java小程序!
写一个Java程序,用String S2 的值分割输出 String S1.
比如,如果S1是“Once the firemen had put out the blaze, the other workers got busy.”
如果S2是"the"
则输出结果应该是:
"Once "
" fireman had put out"
" blaze,"
" o"
"r workers got busy."
程序要用到的函数是 int indexof(String s) 和 String substring(int start, int end)
要求是整个完整程序,可以直接编译。谢谢!
问题点数:88、回复次数:17Top
1 楼dlxu(脱离纯粹Coding阶段)回复于 2004-05-02 04:27:23 得分 1
token不允许啊,这样的话就要费一堆劲了Top
2 楼zsubear(熊)回复于 2004-05-02 04:57:02 得分 8
import javax.swing.*;
public class CutString
{
public static void main(String [] args)
{
String input=JOptionPane.showInputDialog("What is the String?");
int n=input.length();
int front=1;
int back=0;
back=input.indexOf("the");
while(back!=-1)
{
String tmp=input.substring(front-1,back);
System.out.println(tmp);
front=back;
front=front+4;
back=input.indexOf("the",front);
}
if(front<=(n-1))
{
System.out.println(input.substring(front-1,n));
}
System.exit(0);
}
}
写的有点不象话,但功能基本实现了
勉强看吧
输出在控制台
给分!!!!Top
3 楼foolfish(呆鱼)回复于 2004-05-02 05:15:08 得分 66
相信是最好的方法了
public class kkk
{
public static void main(String[] args)
{
String S1="Once the firemen had put out the blaze, the other workers got busy.";
String S2="the";
while(S1.indexOf("the")!=-1)
{
System.out.println(S1.substring(0,S1.indexOf(S2)));
S1=S1.substring(S1.indexOf(S2)+S2.length(),S1.length());
}
System.out.println(S1);
}
}Top
4 楼foolfish(呆鱼)回复于 2004-05-02 05:25:22 得分 1
7行改成
while(S1.indexOf(S2)!=-1)Top
5 楼gift2u(gift2u礼物)回复于 2004-05-02 07:43:37 得分 1
upTop
6 楼wendaotwo(问道)回复于 2004-05-02 09:33:42 得分 1
up
Top
7 楼firefoxes(火狐)回复于 2004-05-02 11:13:50 得分 1
up
Top
8 楼javamannxb(反光镜)回复于 2004-05-02 12:08:51 得分 1
import javax.swing.*;
public class CutString
{
public static void main(String[] args)
{
String s1=JOptionPane.showInputDialog("input cut string:");
String s2=JOptionPane.showInputDialog("input string for cut:");
String s3=s2.replaceAll(s1,"\n");
System.out.println(s3);
}
}Top
9 楼junxi()回复于 2004-05-02 13:09:09 得分 1
import javax.swing.*;
public class CutString
{
public static void main(String[] args)
{
String s1=JOptionPane.showInputDialog("input cut string:");
String s2=JOptionPane.showInputDialog("input string for cut:");
String s3=s2.replaceAll(s1,"\n");
System.out.println(s3);
}
}
Top
10 楼foolfish(呆鱼)回复于 2004-05-02 14:51:24 得分 0
楼上两位别自作聪明
没看到只能用 indexOf和substring两个方法吗Top
11 楼GhostValley(鬼谷)回复于 2004-05-02 15:20:35 得分 6
void partition(String s1,String s2)
{
int k = s1.indexOf(s2);
if(k != -1){ //included
System.out.print(s1.substring(0,k-1));
if(k+s2.length() < s1.length())
partition(s1.substring(k+s2.length(),s2.length()),s2);
}else
System.out.print(s1);
}
Top
12 楼vongood((my c++))回复于 2004-05-02 15:21:45 得分 1
这样也得/Top
13 楼Cbfan(民族英雄~~)回复于 2004-05-03 02:22:45 得分 0
谢谢大家,但是S1是从s1.txt中读取的,S2是作为参数输入的。都不是在程序中定义的。
我觉得 foolfish(呆鱼) 的办法好~Top
14 楼Cbfan(民族英雄~~)回复于 2004-05-03 02:24:19 得分 0
java cutstring the
这里the 就是S2
Top
15 楼Cbfan(民族英雄~~)回复于 2004-05-03 21:55:37 得分 0
upTop
16 楼foolfish(呆鱼)回复于 2004-05-04 17:13:45 得分 0
从文本读取s1变量,从命令参数输入s2变量我已经解决,请结本贴并开新贴,传呼我贴子地址给你贴源码.Top
17 楼Cbfan(民族英雄~~)回复于 2004-05-05 03:18:06 得分 0
不用了,谢谢。这个帖子我现在给分了。Top




