黑马程序员技术交流社区

标题: 求大神帮忙写段代码,具体描述如下 [打印本页]

作者: 坚持努力wbj    时间: 2016-8-20 12:13
标题: 求大神帮忙写段代码,具体描述如下
现有一个行单词(单词 翻译 音标连在一块了):access [ˈækses] v.访问  accessed adj.访问的 2  accessible  [  ə  kˈses  əbl  ] adj.可访问的(此后省略很多)
请大神帮忙写个程序将它去除音标变成以下输出模式
access v.访问
accessed adj.访问的
accessible adj.可访问的
作者: 水月灬清影    时间: 2016-8-20 13:13
每个单词前有没有数字序号?
作者: qetu001212    时间: 2016-8-21 20:44
转为StringBuffer,获得“[”和“]”的索引a,b,然后delete(a,b),记得toString()转回String
作者: 菜菜_f9490    时间: 2016-8-21 21:15
“[”和“]”的索引a,b,然后在写
作者: 坚持努力wbj    时间: 2016-8-22 00:16
水月灬清影 发表于 2016-8-20 13:13
每个单词前有没有数字序号?

没有数字序号
作者: 水月灬清影    时间: 2016-8-22 08:10
你们的做法音标是删了,我想请教,如何控制换行?
作者: 水月灬清影    时间: 2016-8-22 08:22
你要求的基本实现,但是由于控制换行的地方我没处理好,所以没用IO流写。这段程序最大的问题就是控制换行的字母那里,你需要手动把所有a开头的字母剪出来,贴到程序里,处理完之后,再把b开头的剪出来,贴进去……
正则应该可以实现,但是换行循环那里我没想好怎么处理,你可以顺着这个思路往下写,再加上IO流,就行了。
[Java] 纯文本查看 复制代码
import java.util.Scanner;


public class LetterAndLn {
        public static void main(String[] args) {
                //测试字符串
                String line="access [ˈækses] v.访问  accessed adj.访问的   accessible  [  ə  kˈses  əbl  ] adj.可访问的" ;
       
                StringBuilder sb = new StringBuilder(line);
               
                //删音标
                while(true){
                        int start=sb.indexOf("[");
                        int end=sb.indexOf("]");
                        if(start==-1){
                                break;
                        }else{
                                sb.delete(start, end+1);
                        }
                       
                }
               
                //输入单词首字母
                System.out.println("请输入所处理单词首字母");
                Scanner sc=new Scanner(System.in);
                String letter=sc.nextLine();

                //换行
                StringBuilder sb2=new StringBuilder();
                while(true){
                        int start=sb.indexOf(".");
                        int end = sb.indexOf(letter, start);
                        if(end==-1){
                                sb2.append(sb.substring(0));
                                break;
                        }else{
                                sb.insert(end, "\n");
                                sb2.append(sb.substring(0, end+1));
                                sb.delete(0, end+1);
                        }
                       
                }


               
                System.out.println(sb2);

        }
}

作者: 胡eason    时间: 2016-8-22 21:26
加油!加油!加油!加油!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2