如何获得字符串中的行数?

Rom*_*ski 2 string lua coronasdk

总体而言,我从JSON对中获取了一个包含“ \ n”符号的字符串。例如,

“我可以看到地球如何养育其草皮,\\\ n \ n \ n \ n \ n \ n \ n \ s \ n \ n \ s \ n \ n \ s \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \\\\\\\\\\\\\\\\\\\\\\\\\\自己停留在自己的遗骸\\\膨胀,\ n以及根部如何穿透周围的覆盖物\ n愉快地吸入天空中的空气。\ n我可以看到光线如何照亮花朵,-\ n将自身倒入紧紧的芽中!\ n地球和草丛–继续成长!\ n在绿色的海洋中翻山越岭... \ n哦,年轻的运动之力,\ n植物的肌肉力量!\ n向行星,太阳和你开放,\ n突破春暖花开的灌木丛!”

这串是一些图片的一首诗。

现在,我需要display.newText根据文本长度调整对象的大小。

这是我看到的方法:

  1. 获取行数(“ \ n” +1,因为最后没有“ \ n”)
  2. 在for循环中获得最长的行
  3. 设置display.newText对象的大小。可能使用fontSize计算系数...

问题是:如何获得行数?

Yu *_*Hao 5

要获取'\n'字符串中的数字,可以使用string.gsub,它用于字符串替换,但它也将匹配数作为第二个返回值返回。

local count  = select(2, str:gsub('\n', '\n'))
Run Code Online (Sandbox Code Playgroud)

或类似:

local _, count = str:gsub('\n', '\n')
Run Code Online (Sandbox Code Playgroud)