首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MeasureString()填充左侧和右侧的文本

MeasureString() 是一个JavaScript方法,用于计算字符串的长度,并在其左右两侧填充指定的文本。下面是一个使用它的示例代码:

代码语言:javascript
复制
var measurement = "这是MeasureString() 示例";
var leftPadding = " ".repeat(measurement.length - measurement.trim().length);
var rightPadding = "\n".repeat(leftPadding.length);

var totalWidth = leftPadding.length + measurement.trim().length + rightPadding.length;

var width = Math.max(0, totalWidth - leftPadding.length - rightPadding.length);
var height = measurement.length / width;

var measurementWidth = Math.floor(width);

if (measurementWidth <= measurement.length) {
  var measurementLength = Math.min(measurementWidth, measurement.length);
  var measurementCutStart = measurement.length - measurementLength;
  var measurementCut = measurement.substring(0, measurementCutStart) + measurement.substring(measurementCutStart);
} else {
  var measurementCutStart = 0;
  var measurementCut = measurement.substring(0, measurement.length);
}

var newMeasurement = leftPadding + measurementCut + rightPadding;

var measureStringResult = newMeasurement + "字符总数: " + measurement.length;

这个示例代码将会输出以下结果:

代码语言:txt
复制
 MeasureString() 示例
  字符总数: 19

其中,“这是MeasureString() 示例”是被测量的字符串,它的长度是19个字符,MeasureString() 的左侧会填充空格直到它达到指定宽度,右侧会填充换行符,并添加总字符数。在这个例子中,测量结果为 24 字符长度(19+4)的字符串,该字符串将填充到字符串的左侧,以便文本与边距相匹配。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

css左侧固定宽度,右侧自适应几种实现方法

左侧固定,右侧自适应或者右侧固定在,左侧自适应是一样。这种布局很常见,而且面试过程中也经常会问到,这里我总结方法一共有5种。要实现这种布局,也算比较简单。...因为div有个默认属性,即如果不设置宽度,那他会自动填满他父标签宽度。这里content就是例子。 当然我们不能让他填满了,填满了他就不能sidebar保持同一行了。...如果contentsidebar一样,都用float,那content自适应宽度就没戏了;如果不给content加float,那sidebar又会跑到下一行去。...比如说,你可以使用calc()给元素border、margin、pading、font-sizewidth等属性设置动态值。为何说是动态值呢?因为我们使用表达式来得到值。...前四种方法转载自老生长谈:css实现右侧固定宽度,左侧宽度自适应。这里主要是将各种方法进行汇总。我目前了解到方法主要是这些,如果大家还有其他方法请留言分享

2.4K20

ajax实现简单点击左侧菜单,右侧加载不同网页

实现:ajax实现点击左侧菜单,右侧加载不同网页(在整个页面无刷新情况下实现右侧局部刷新,用到ajax注意需要在服务器环境下运行,从HBuilder自带服务器中打开浏览效果即可) 图片.png 原理...:ajax局部刷新原理:通过.load()重新加载页面中某一部分,巧妙借助data-*自定义属性来存储数据,点击时候修改锚点,因为地址有变,所以刷新时候仍然会保持当前页面内容而不是切换到第一个...遇到ajax局部刷新需求也有很多,有时候比较简单,当内容较少,适合做成选项卡,如果网页左侧有一个列表,点击列表使右侧内容进行切换,如果右侧内容过多,不适合做选项卡,这时候用.load()局部刷新最好不过了...,在项目中经常使用到流程管理后台,便是左右结构布局,这个时候,简单demo示例如下 <!...var sId = window.location.hash; loadInner(sId); }); 创建右侧对应几个新

3.3K50

Android开发(43) 动画演示,会跑小人,从屏幕左侧跑到右侧

需求 想做一个动画,一个会跑小人,从屏幕右侧跑道右侧,于是做了个尝试,上图: 实现步骤 要完成这样需要三步: 做一个 帧动画 (frame animation),由多张图片组成,组成小人连续跑动样子...在onStart里启动动画 第一步,描述 “人物动作变化”动画 准备多个动作图片,写个xml animation : <?xml version="1.0" encoding="utf-8"?...Animation.RELATIVE_TO_SELF, 0); translate.setDuration(3000); translate.setRepeatCount(Animation.INFINITE); 这句话意思时...,相对于 父容器 x坐标移动,y轴不改变,一直循环 第三步,启动 启动动画即可,代码: package com.example.demo_run; import android.app.Activity

1.2K00

应用单细胞测序技术对左侧右侧结直肠癌进行特征分析

右侧结直肠癌(CRC;起源于盲肠、升结肠、肝曲)左侧结直肠癌(起源于脾弯、降结肠、乙状结肠)通常被归为一种疾病,它们预后治疗结果有显著差异。...对3例左侧3例右侧结直肠癌根治性手术中获得6个样本中27,927个细胞进行了scRNA-Seq检测,并构建了恶性结直肠癌单细胞转录组图谱。...acc=GSE188711 文章选择3例左侧3例右侧患者27,927个单个人结直肠癌细胞进行综合分析,一共是6个样品。...发现几个细胞团在左侧右侧结直肠癌中都得到了丰富,共有13,488个单细胞起源于左侧CRC,而14,439个单个细胞起源于右侧CRC。...其它加分项 左侧右侧结直肠癌细胞特异性表达变化 将DEG数目投影到t-SNE图上显示,发现第4簇癌细胞在结直肠癌TME中表现出最显著转录变化,这表明肿瘤细胞群在左侧右侧结直肠癌之间存在最本质转录差异

27410

左侧导航click,右侧内容scroll——一个模拟外卖点单简易页面

本人很少做移动端东西,这是一个小伙伴发过来案例。功能很明确,就是点击左侧菜单,右侧内容对应滚动指定;右侧内容滚动,左侧菜单对应高亮。 ?...点单简易页面,emmmm..简洁得特别简陋 一、 问题描述 这个demo有两处问题: 1. 点击切换左侧菜单时,由于右侧内容滚动也触发了scroll事件,导致互相影响; ?...造成菜单栏闪烁问题 2. 由于滚动高度限制,点击左侧6/7/8菜单时,右侧对应内容不会置顶 (当然,这个特征在目前各大外卖平台产品设计就是不让置顶,但此处设计就是想点谁谁up)。 ?...滚动高度限制 二、问题分析与解决 1.事件冲突问题 这个问题我们可以考虑,在左侧菜单点击触发动画前,禁用右侧滚动事件,等动画结束后再启动右侧滚动事件。具体实现,可以通过一个标志来设定。...具体计算公式是: 合适滚动高度 = 原本滚动高度 + 页面高度 - 最后一个分类高度 // 设置右侧分类合适滚动高度 $("#listUl").

1.9K10

【Go语言绘图】图片添加文字(一)

,然后将它颜色进行填充来实现纯色背景效果,但实际上使用 Clear() 方法便能直接使用当前颜色对画布进行填充。..., 0, S/2)时,我们设置坐标是 (0, S/2) ,也就是左侧正中心点,这个位置刚好是绘制出来文字左下角坐标,这是需要注意一点。 居中显示 如果想要文字居中显示怎么办呢?...别慌,有一个方法可以得到文字宽度,MeasureString() 可以得到在当前字体下指定字符串宽度高度,这个高度其实就是前面通过 points * 72 / 96 计算得到,然后我们再将左下角位置设置为...,先考虑整个文本左上顶点位置,因为需要居中展示,每一行宽度是变化,X轴坐标是不确定,但是Y轴坐标是可以先计算出来,因为每一行高度行间距我们都已经知道了。...小结 这一篇中,主要讲解了如何在纯色背景图上进行文字绘制,说明了 DrawString() 方法 MeasureString() 使用,并利用它们来实现了文字居中效果。

2.7K10

Atom 在 linux 下安装有几率侧边栏默认显示在右侧,移动到左侧设置方法

Atom 在 linux 下安装有几率侧边栏默认显示在右侧,移动到左侧设置方法 遇到一个奇葩事情。没有macbook了。...我及其讨厌windows,于是给新来前端一台笔记本,安装上了archlinux系统。在安装好atom编辑器之后,发现,侧边栏显示在右侧,恶心坏了。 通过一番摸索,终于找到了设置选项。...如下: 打开 设置 → Packages → 一直往下翻,找到 tree-view → 点击 setting 或 设置 → 去掉Show On Right Side 勾选,然后就立即生效了。...在中文网络上应该是我第一个解决这个问题。除了archlinux ,在 ubuntu 上应该也有几率出现。不知道什么原因。 版权申明:本文由FungLeo原创,允许转载,但转载必须附注首发链接。谢谢。

1.4K20

Leetcode No.116 填充每个节点下一个右侧节点指针(BFS)

二叉树定义如下: struct Node { int val; Node *left; Node *right; Node *next; } 填充每个 next 指针,让这个指针指向其下一个右侧节点...如果找不到下一个右侧节点,则将 next 指针设置为 NULL。 初始状态下,所有 next 指针都被设置为 NULL。 进阶: 你只能使用常量级额外空间。...示例: 输入:root = [1,2,3,4,5,6,7] 输出:[1,#,2,3,#,4,5,6,7,#] 解释:给定二叉树如图 A 所示,你函数应该填充每个 next 指针,以指向其下一个右侧节点...因此直观做法我们可以对二叉树进行层次遍历,在层次遍历过程中将我们将二叉树每一层节点拿出来遍历并连接。...因此我们可以在遍历过程中修改每个节点 next 指针,同时拓展下一层新队列。

35210

填充每个节点下一个右侧节点指针 II

题目 给定一个二叉树 struct Node { int val; Node *left; Node *right; Node *next; } 填充每个 next 指针,让这个指针指向其下一个右侧节点...如果找不到下一个右侧节点,则将 next 指针设置为 NULL。 初始状态下,所有 next 指针都被设置为 NULL。 示例: ?...,"val":3},"right":{"$ref":"4"},"val":2},"next":null,"right":{"$ref":"6"},"val":1} 解释:给定二叉树如图 A 所示,你函数应该填充每个...next 指针,以指向其下一个右侧节点,如图 B 所示。...题解 这道题目116题不同是,这道题树不是一颗完全二叉树,上一道题目我们分别介绍了三种方法,那么哪些方法还是有用呢? 层次遍历方法肯定是有用.代码我们这里不做赘述。

1.1K20

LeetCode117:填充每个节点下一个右侧节点指针 II

LeetCode117:填充每个节点下一个右侧节点指针 II Populating Next Right Pointers in Each Node II 题目: 给定一个二叉树 Given...a binary tree struct Node { int val; Node *left; Node *right; Node *next; } 填充每个 next 指针,让这个指针指向其下一个右侧节点...img 输入:root = [1,2,3,4,5,null,7] 输出:[1,#,2,3,#,4,5,7,#] 解释:给定二叉树如图 A 所示,你函数应该填充每个 next 指针,以指向其下一个右侧节点...只需稍微转变一下思路即可: 先设置一个头结点 temp,作为每层左侧结点。...继续查找 prev 结点最邻近右侧结点,重复上述操作,直到该层结束。而此时 头结点 temp.next 就是下一层左侧结点。

52120

​LeetCode刷题实战116:填充每个节点下一个右侧节点指针

算法重要性,我就不多说了吧,想去大厂,就必须要经过基础知识业务逻辑面试+算法面试。所以,为了提高大家算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !...今天和大家聊问题叫做 填充每个节点下一个右侧节点指针,我们先来看题面:https://leetcode-cn.com/problems/populating-next-right-pointers-in-each-node...二叉树定义如下: struct Node { int val; Node *left; Node *right; Node *next; } 填充每个 next 指针,让这个指针指向其下一个右侧节点...解题 https://zhuanlan.zhihu.com/p/132431048 树两种基本遍历方法。...树深度优先遍历又可以分为先序遍历 preorder、中序遍历 inorder 后序遍历postorder。树广度优先遍历基于节点层级 level 概念。

37840

​LeetCode刷题实战117:填充每个节点下一个右侧节点指针 II

今天和大家聊问题叫做 填充每个节点下一个右侧节点指针 II,我们先来看题面: https://leetcode-cn.com/problems/populating-next-right-pointers-in-each-node-ii...题意 给定一个二叉树 struct Node { int val; Node *left; Node *right; Node *next; } 填充每个 next 指针,让这个指针指向其下一个右侧节点...如果找不到下一个右侧节点,则将 next 指针设置为 NULL。 初始状态下,所有 next 指针都被设置为 NULL。 进阶: 你只能使用常量级额外空间。...使用递归解题也符合要求,本题中递归程序占用栈空间不算做额外空间复杂度。 样例 ? 解题 这道题希望我们把二叉树各个层点组织成链表,一个非常直观思路是层次遍历。...树层次遍历基于广度优先搜索,它按照层顺序遍历二叉树,在遍历第 ii 层前,一定会遍历完第 i−1 层。 算法如下:初始化一个队列 q,将根结点放入队列中。

29510

自适应表头左侧列固定表格

2016-09-28 14:05:20 在网站建设中,表格出现提供了数据对比便利以及数据查看便利。...,让左侧一列固定,右侧部分可以滑动,则可以方便知道自己看是哪一行。...该表格三部分分别为:顶部,左侧,中间。中间部分以列为分割点。...m-type为第一行,如果该行需要合并后面的列,则后面列m-type内容置空即可(但要保留标签) 左侧部分: 左侧部分为一列,列中m-section为一组,用于划分T+STT高效动力、驾感科技(此类型行宽度占满整个表格...)等 每一个m-section中m-tit为占满整个表格行,例如:T+STT高效动力 左侧部分中间部分背景色以斑马线形式分布,odd颜色为深色 中间部分: 中间部分每m-scroll-col

3.9K10

☆打卡算法☆LeetCode 116、 填充每个节点下一个右侧节点指针 算法解析

一、题目 1、算法题目 “给定一个完美二叉树,填充每个next指针,让这个指针指向其下一个右侧节点。” 题目链接: 来源:力扣(LeetCode) 链接: 116....填充每个节点下一个右侧节点指针 2、题目描述 给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点。...二叉树定义如下: struct Node { int val; Node *left; Node *right; Node *next; } 填充每个 next 指针,让这个指针指向其下一个右侧节点...如果找不到下一个右侧节点,则将 next 指针设置为 NULL。 初始状态下,所有 next 指针都被设置为 NULL。...示例 1: 输入:root = [1,2,3,4,5,6,7] 输出:[1,#,2,3,#,4,5,6,7,#] 解释:给定二叉树如图 A 所示,你函数应该填充每个 next 指针,以指向其下一个右侧节点

24940

填充每个节点下一个右侧节点指针

二叉树定义如下: struct Node { int val; Node *left; Node *right; Node *next; } 填充每个 next 指针,让这个指针指向其下一个右侧节点...如果找不到下一个右侧节点,则将 next 指针设置为 NULL。 初始状态下,所有 next 指针都被设置为 NULL。 进阶: 你只能使用常量级额外空间。...输入:root = [1,2,3,4,5,6,7] 输出:[1,#,2,3,#,4,5,6,7,#] 解释:给定二叉树如图 A 所示,你函数应该填充每个 next 指针,以指向其下一个右侧节点...序列化输出按层序遍历排列,同一层节点由 next 指针连接,’#’ 标志着每一层结束 完美二叉树,指的是整棵二叉树是一个正三角形,除了最右侧节点next指针会指向null,其他节点右侧一定有相邻节点...,具体详见下图: 节点 5 节点 6 不属于同一个父节点,那么按照这段代码逻辑,它俩就没办法被穿起来,这是不符合题意

27420

填充每个节点下一个右侧节点指针 II(递归&循环)

题目 填充每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。 初始状态下,所有 next 指针都被设置为 NULL。 ?...解题 2.1 递归 左节点: root有左节点右节点,则左节点next为右节点 root右节点为null,则查找父节点兄弟节点最左边子元素 右节点: root右节点不为null,其next...为父节点兄弟节点最左边子元素 递归:要先构建右子树,再构建左子树,因为寻找父节点兄弟节点是从左到右遍历,如果右子树next没接上就遍历,会出错 class Solution { public:...parent->right) parent = parent->next;//找到第一个有子节点parent if(parent == NULL)

40610
领券