如何用数字排列kotlin中的字符串?

时间:2018-02-13 07:28:35

标签: android kotlin

我的字符串包含文字和数字,例如

var text = "1 Hello world 2 how are you 3 im fine here"

我怎样才能让它按每个数字开始新线?喜欢这个

1 Hello world
2 how are you
3 I'm fine 

这就是文字var my_text = "1 فِي الْبَدْءِ خَلَقَ اللهُ السَّمَاوَاتِ وَالأَرْضَ. 2 وَكَانَتِ الأَرْضُ خَرِبَةً وَخَالِيَةً، وَعَلَى وَجْهِ الْغَمْرِ ظُلْمَةٌ، وَرُوحُ اللهِ يَرِفُّ عَلَى وَجْهِ الْمِيَاهِ. 3 وَقَالَ اللهُ: «لِيَكُنْ نُورٌ»، فَكَانَ نُورٌ. 4 وَرَأَى اللهُ النُّورَ أَنَّهُ حَسَنٌ. وَفَصَلَ اللهُ بَيْنَ النُّورِ وَالظُّلْمَةِ. 5 وَدَعَا اللهُ النُّورَ نَهَارًا، وَالظُّلْمَةُ دَعَاهَا لَيْلاً. وَكَانَ مَسَاءٌ وَكَانَ صَبَاحٌ يَوْمًا وَاحِدًا. 6 وَقَالَ اللهُ: «لِيَكُنْ جَلَدٌ فِي وَسَطِ الْمِيَاهِ. وَلْيَكُنْ فَاصِلاً بَيْنَ مِيَاهٍ وَمِيَاهٍ». 7 فَعَمِلَ اللهُ الْجَلَدَ، وَفَصَلَ بَيْنَ الْمِيَاهِ الَّتِي تَحْتَ الْجَلَدِ وَالْمِيَاهِ الَّتِي فَوْقَ الْجَلَدِ. وَكَانَ كَذلِكَ. 8 وَدَعَا اللهُ الْجَلَدَ سَمَاءً. وَكَانَ مَسَاءٌ وَكَانَ صَبَاحٌ يَوْمًا ثَانِيًا. 9 وَقَالَ اللهُ: «لِتَجْتَمِعِ الْمِيَاهُ تَحْتَ السَّمَاءِ إِلَى مَكَانٍ وَاحِدٍ، وَلْتَظْهَرِ الْيَابِسَةُ». وَكَانَ كَذلِكَ. 10 وَدَعَا اللهُ الْيَابِسَةَ أَرْضًا، وَمُجْتَمَعَ الْمِيَاهِ دَعَاهُ بِحَارًا. وَرَأَى اللهُ ذلِكَ أَنَّهُ حَسَنٌ. "

仅供参考:文本在sqlite数据库中 我想在android文本视图中显示它

4 个答案:

答案 0 :(得分:3)

你可以用正则表达式分割这个字符串。

一种选择是使用\\s(?=\\d+),它将匹配空白字符,后跟任意数字的数字。例如:

val str = "1 Hello world 2 how are you 3 im fine here"

val r = str.split("\\s(?=\\d+)".toRegex())

r.forEach(::println)

然后使用joinToString创建一个带换行符的字符串:

println(r.joinToString("\n"))

答案 1 :(得分:2)

这是@ RandallFlagg&和@ user3357604的答案的组合,它确实提出了要求,可能更有效:

{
  name: 'server',
  target: 'node',
  // ...
  plugins: [
    // ...
    new webpack.ProvidePlugin({
      URLSearchParams: ['url', 'URLSearchParams'],
      fetch: 'node-fetch',
    }),
  ],
}

答案 2 :(得分:1)

我使用了一个kotlin方法来删除带有trimMargin()函数的空格和默认情况下|用作保证金前缀。

        var text = """|1 Hello world
                |2 how are you
                |3 im fine here""".trimMargin()
    println(text)

答案 3 :(得分:-1)

试试这个..use'< br>'如果kotlin不喜欢它,而不是'\ n'

示例字符串

str = '1 one 2 two, two and a half, 3 three and four and five';
console.log(str); 

-- 
1 one 2 two, two and a half, 3 three and four and five

示例解决方案

str2 = str.replace(/.(?=[0-9]\s)/gi, '\n');
console.log(str2); 

--
1 one 
2 two, two and a half, 
3 three and four and five