Android 换行问题

作者: zii4914 | 来源:发表于2018-04-03 11:10 被阅读462次

今天使用OSS后台服务时候,用换行符划分两部分数据。后来发现使用 \n,从后台获取内容之后,存到windows的txt文本,并没有换行。

后来又继续尝试了几种猜测:

  • \n
  • \\n
  • System.getProperty("line.separator")
  • \r\n
  • \\r\\n

最后发现,\r\n可以达到换行。
在过程中,虽然进行了一些错误的尝试,但是考虑点,有服务器的系统换行区别,字符串转义这两点,大体思考方向是正确的。

lineSeparator

java代码中使用System.lineSeparator()可以根据运行的系统使用对应的换行符。但是对于android客户端来说,需要知道的是后台的换行符是哪一种,否则重新下载内容下来的时候可能无法得到换行效果,就跟我遇到的场景一样。lineSeparator官方说明

不同系统的换行符

Unix and modern Mac's   :   LF     (\n)
Windows                 :   CR LF  (\r\n)
Older Macintosh Systems :   CR     (\r)

stackoverflow Java String new line
国内和国外的文章对比了以下,windows和linux的换行都一致,mac的话,国内的文章大多数都说是\r,我也没有mac,无法尝试,但stackoverflow说新的mac和旧的mac换行不一样应该更准确。

反斜杠转义

在出现问题的时候,有考虑过,可能后台使用明字符串存储,所以也尝试了一下转义。关于\转义。

  • Java代码中
    反斜杠(\),它和紧跟着它的那个字符构成转义字符,如“\n”(表示换行)、“\””(表示字符‘”’)等,所以在字符串中要表示字符''要用“\”来表示,例:如果你这样定义一个字符串String s = “name\sex”是错误的,要这样定义String s = “name\sex”;

  • 正则表达式中
    在正则表达式中的\\表示和后面紧跟着的那个字符构成一个转义字符(姑且先这样命名),代表着特殊的意义;所以如果你要在正则表达式中表示一个反斜杠\,应当写成\\\\

相关文章

  • Android 换行问题

    今天使用OSS后台服务时候,用换行符划分两部分数据。后来发现使用 \n,从后台获取内容之后,存到windows的t...

  • android studio logcat 换行(日志换行)

    android studio logcat 换行(日志换行)

  • 2022-08-23

    Android适配IOS的换行符 当你遇到使用ios发布动态或者其他带换行符的文案在安卓上却没有换行的问题,使用下...

  • Android 的TextView 换行问题

    因为setText的时候写作(" " + getName())引发了不能显示的问题,一直查了很久不知道为什么,其实...

  • Android TextView Samsung 换行问题

    三星手机显示多行 没有铺满自动换行 依次递减 三星手机两行TextView 明明第一行右间距很大 但是却...

  • Abdroid05 Textview一些mark

    0.基本 操作 强制换行 自动换行 这个 “\n”换行 在xml中添加属性: android:ellipsize=...

  • Android的TextView不能换行问题

    TextView应该是在App开发中最常用的一个android组件了。作为一个常用的组件,我描述一个app开发中遇...

  • Android 图片Base64加密遇到的坑

    问题描述 Android对头像图片进行加密传入后台校验出问题,发现存在换行符。 解决方案 base64加密后前面拼...

  • Android基础:EditText不换行的问题

    一个入门级的问题:如何让EditText只显示一行,无法使用软键盘的回车键换行? EditText的xml布局文件...

  • Code Tips

    //取list 某一列 禁止换行 CSS强制换行 禁止换行 tab定位 返回问题

网友评论

    本文标题:Android 换行问题

    本文链接:https://www.haomeiwen.com/subject/diooqxtx.html