StringTokenizer st = new StringTokenizer(myStr," .,?!\\t \\n \\r \\f"); 那个myStr是用流接受一段键盘录入的字符串!在最后输出结果时,n t r f也被作为分隔符处理了,请问我该怎么改啊?

解决方案 »

  1.   

    StringTokenizer st = new StringTokenizer(myStr," .,?!\\\\t \\\\n \\\\r \\\\f");
      

  2.   

    这样是不行的
    这样写delim = "\\t"
    \
    t
    都是分隔符
    当然你遇到\或者t都不会显示出来
    你得用其他方法才行
    用字符串匹配吧

    "\\t"
    "\\n"
    "\\r"
    "\\f"
    匹配的地方都不要了
    然后就能得到你希望的了
    但代码复杂点
      

  3.   

    \\t \\n \\r \\f
    改为\t\n\r\f
      

  4.   

    sorry 还是不能!我在想我是不是钻牛角尖了!刚开始学,太盲目了!哎!
      

  5.   

    肯定t n r f 这些不会再当作分割符了。关键如果你在windows下输入回车那就是\r\n而不是\n表示回车,所以想用回车作为分隔符的话,仿照上面的写成\r\n就可以了
      

  6.   

    不知道楼主\\t \\n \\r \\f 这些是想表示什么意思
    楼主要是写成\\t \\n \\r \\f 那表示的是将myStr字符串按照t、n、r、f 截取 t/n/r/f 都被处理了
    如果楼主想表达的意思是转意字符则应该为\t\n\r\f
    api 中已经不建议使用这个类了
    StringTokenizer 是出于兼容性的原因而被保留的遗留类(虽然在新代码中并不鼓励使用它)。建议所有寻求此功能的人使用 String 的 split 方法或 java.util.regex 包。
      

  7.   

    学习一下正则表达式吧
    tings gonna be easy...
      

  8.   

    因为我刚开始学,还不懂,而我书上遇到了这样一个题目“编写一个方法caps,搜寻一个字符串中的所有单词,并将每一个单词的首字母改为大写,将单词的剩余部分转换成小写形式,使用StringTokenizer类识别每一个单词,修改分隔符列表,使它除了包含默认的分隔符之外,还包含标点符号(.,!?)”所以我就用了StringTokenizer,那个split我也试过,差不多的!
     有个问题就是如果用户输入了\n 这个字符串我应该怎么处理呢!?
     比如用户输入
      i love\nyou very much ! anD you?
     我想的输出结果是
      I Love You Very Much  And You
    请问大概明白了我的意思吗?
      

  9.   

    就是说
    分隔字符串你写成"\n"代表回车你要写成"\\n"代表字符串的内容是\n
    这样实际上就是说分隔符是\和n
    即遇到\和n都会被认作是分隔符
    例子:asd\ndsa\dsan变成
    asd
    dsa
    dsa
      

  10.   

    你那个是实现不了的因为对于键盘输入然后读取的\n java是按照两个字符处理的,就是\和n,为了实现你的目的,可以把读取后的\n用substring去掉,然后再用你的StringTokenizer.
      

  11.   

    多谢各位的热心帮助,因为这个CSDN的号我早注册了,一点点分都下东西下完了,所以没分给大家了,呵呵!希望大家别介意啊!
      

  12.   

    现在正则表达式已经完全替代了 StringTokenizer