代码之家  ›  专栏  ›  技术社区  ›  KatherineMichelle

基于空格和长度将字符串分成两行的条件语句

  •  0
  • KatherineMichelle  · 技术社区  · 6 年前

    我有一个函数可以把一个字符串分成两行。它根据空白空间的位置断开字符串:

     splitSentenceInHalfCC(sentence: string): [string, string] {
        let middle = Math.floor(sentence.length / 2);
        let before = sentence.lastIndexOf(' ', middle);
        let after = sentence.indexOf(' ', middle + 1);
    
    
        if (middle - before < after - middle || after === -1) {
          middle = before;
        } else {
          middle = after;
        }
    
        let s1 = sentence.substr(0, middle);
        let s2 = sentence.substr(middle + 1);
    
        return [s1, s2];
      }
    

    我现在要做的是添加一个if语句,如果没有空格,它将在前15个字符后将字符串分成两行。我怎样才能做到这一点?我对这件事还不太熟悉,所以不知道该怎么办。谢谢您。

    Example #1 input: This is a Store name and it is detailed.
    Example #1 output: This is a Store name 
                       and it is detailed.
    Example #2 input: Thisisjustalongstorenamewithnospaces.
    Example #2 output: Thisisjustalongstorename
                       withnospaces.
    
    2 回复  |  直到 6 年前
        1
  •  0
  •   CertainPerformance    6 年前

    我想你需要做的就是,在函数的一开始,检查一下这个句子 .includes 空格-如果不是,则返回一个包含两项的数组 slice 从0到35,然后从35开始。(当然,如果要更改字符数,只需更改 35 提供给的参数 .slice )

    function splitSentenceInHalfCC(sentence) {
      if (!sentence.includes(' ')) {
        return [
          sentence.slice(0, 35),
          sentence.slice(35),
        ]
      }
    
      let middle = Math.floor(sentence.length / 2);
      let before = sentence.lastIndexOf(' ', middle);
      let after = sentence.indexOf(' ', middle + 1);
    
    
      if (middle - before < after - middle || after === -1) {
        middle = before;
      } else {
        middle = after;
      }
    
      let s1 = sentence.substr(0, middle);
      let s2 = sentence.substr(middle + 1);
    
      return [s1, s2];
    }
    console.log(splitSentenceInHalfCC('This is a Store name and it is detailed.'));
    console.log(splitSentenceInHalfCC('Thisisjustalongstorenamewithnospaces.'));
        2
  •  0
  •   Aakash More    6 年前

    检查字符串是否有空格。

     splitSentenceInHalfCC(sentence: string): [string, string] {
        let middle = Math.floor(sentence.length / 2);
        let before = sentence.lastIndexOf(' ', middle);
        let after = sentence.indexOf(' ', middle + 1);
    
    
        if (middle - before < after - middle || after === -1) {
          middle = before;
        } else {
          middle = after;
        }
    
        if( before === -1 && after === -1 ){
           middle = 35;
        }
    
        let s1 = sentence.substr(0, middle);
        let s2 = sentence.substr(middle + 1);
    
        return [s1, s2];
      }
    

    注意:您可能需要以数字为基数 35 在字符串长度上。