【问题标题】:how do you check if a string is at the end of a line?如何检查字符串是否在行尾?
【发布时间】:2014-05-12 20:37:52
【问题描述】:

我无法检测字符串是否位于行尾。例如,在字符串中:

"hey hi
 hello"

如何检测 hi 是否在行尾?我正在从文件中读取字符串,那么文件中的行尾字符有什么不同吗?

【问题讨论】:

  • 搜索"\n",这是换行符。
  • 你必须说出你是如何读取文件的,因为很多方法如readLine()nextLine() 会去除换行符,所以如果你只是搜索它,你永远不会找到它。
  • @aamit915 我正在使用new Scanner(new File("KLSadd.tex")).useDelimiter("\\Z").next();阅读文件
  • 嘿!你的意思是string 还是word
  • @PaulVargas,一个字符串

标签: java string file


【解决方案1】:

您可以使用BufferedReader 或类似对象来读取文件,然后使用readLine() 方法一次读取一行。

http://docs.oracle.com/javase/1.5.0/docs/api/java/io/BufferedReader.html

【讨论】:

    【解决方案2】:

    尝试将 MULTILINE 标志与正则表达式一起使用。

    // this allows spaces between 'hi' and the end of the line
    yourString.matches("(?m).*hi\s*$");
    
    // this does not allow spaces
    yourString.matches("(?m).*hi%");
    

    【讨论】:

      【解决方案3】:

      换行符在不同的操作系统上有不同的表示。可能是

      • LF - '\n'
      • CR - '\r'
      • CR+LF - '\r\n'

      您可以检查下一个字符是否是前面提到的字符,具体取决于输入操作系统。

      您使用StringTokinizerBufferedReader.readLine() 进行行读取或字符串拆分

      【讨论】:

        【解决方案4】:

        getline(istream,string) 正在读取字符 end_of_line 的输入,您可以从读取的字符串中获取行中的最后一个字符串。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-11-22
          • 1970-01-01
          • 2012-09-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多