行业资讯 2025年08月6日
0 收藏 0 点赞 715 浏览 3040 个字
摘要 :

文章目录 1. 对长文本使用自定义格式 1.1. StringAlignUtils类 1.2. 字符串左对齐示例 1.3. 字符串右对齐示例 1.3. 字符串右对齐示例 1.4. 字符串中心对齐示例 2. 结……




  • 1. 对长文本使用自定义格式
    • 1.1. StringAlignUtils类
    • 1.2. 字符串对齐示例
    • 1.3. 字符串右对齐示例
    • 1.3. 字符串右对齐示例
    • 1.4. 字符串中心对齐示例
  • 2. 结论

学习将字符串左对齐、右对齐或居中对齐。我创建了一个实用程序类StringAlignUtils,它将所有逻辑包装在其中,并提供我们可以直接调用的方便方法。

1. 对长文本使用自定义格式

1.1. StringAlignUtils类

该类StringAlignUtils扩展了java.text.Format类。Format是一个抽象基类,用于格式化区域设置敏感信息,例如日期、消息和数字。

StringAlignUtils定义三个用于对齐顺序的枚举常量。

  • LEFT
  • CENTER
  • RIGHT

StringAlignUtils需要一个参数maxChars指定单行中的字符长度。如果给定 String 中的字符数超过maxChars,则该 String 会被拆分为两个 String 。

import java.text.FieldPosition;
import java.text.Format;
import java.text.ParsePosition;
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
 
public class StringAlignUtils extends Format {
 
  private static final long serialVersionUID = 1L;
 
  public enum Alignment {
    LEFT, CENTER, RIGHT,
  }
 
  /** Current justification for formatting */
  private Alignment currentAlignment;
 
  /** Current max length of a line */
  private int maxChars;
 
  public StringAlignUtils(int maxChars, Alignment align) {
    switch (align) {
      case LEFT:
      case CENTER:
      case RIGHT:
        this.currentAlignment = align;
        break;
      default:
        throw new IllegalArgumentException(\"invalid justification arg.\");
    }
    if (maxChars < 0) {
      throw new IllegalArgumentException(\"maxChars must be positive.\");
    }
    this.maxChars = maxChars;
  }
 
  public StringBuffer format(Object input, StringBuffer where, FieldPosition ignore)
  {
    String s = input.toString();
    List<String> strings = splitInputString(s);
    ListIterator<String> listItr = strings.listIterator();
     
    while (listItr.hasNext())
    {
      String wanted = listItr.next();
       
      //Get the spaces in the right place.
      switch (currentAlignment)
      {
        case RIGHT:
          pad(where, maxChars - wanted.length());
          where.append(wanted);
          break;
 
        case CENTER:
          int toAdd = maxChars - wanted.length();
          pad(where, toAdd / 2);
          where.append(wanted);
          pad(where, toAdd - toAdd / 2);
          break;
 
        case LEFT:
          where.append(wanted);
          pad(where, maxChars - wanted.length());
          break;
        }
        where.append(\"\\n\");
    }
    return where;
  }
 
  protected final void pad(StringBuffer to, int howMany) {
    for (int i = 0; i < howMany; i++)
      to.append(\' \');
  }
 
  String format(String s) {
    return format(s, new StringBuffer(), null).toString();
  }
 
  /** ParseObject is required, but not useful here. */
  public Object parseObject(String source, ParsePosition pos) {
    return source;
  }
 
  private List<String> splitInputString(String str) {
    List<String> list = new ArrayList<String>();
    if (str == null)
      return list;
    for (int i = 0; i < str.length(); i = i + maxChars)
    {
      int endindex = Math.min(i + maxChars, str.length());
      list.add(str.substring(i, endindex));
    }
    return list;
  }
}

1.2. 字符串左对齐示例

String sampleText = \"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt \"
    + \"ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris \"
    + \"nisi ut aliquip ex ea commodo consequat.\";

StringAlignUtils util = new StringAlignUtils(50, Alignment.LEFT);
System.out.println( util.format(sampleText) );

Java 中的字符串左对齐、右对齐或居中对齐

1.3. 字符串右对齐示例

StringAlignUtils util = new StringAlignUtils(50, Alignment.RIGHT);
System.out.println( util.format(sampleText) );

Java 中的字符串左对齐、右对齐或居中对齐

1.3. 字符串右对齐示例

StringAlignUtils util = new StringAlignUtils(50, Alignment.RIGHT);
System.out.println( util.format(sampleText) );

Java 中的字符串左对齐、右对齐或居中对齐

1.4. 字符串中心对齐示例

StringAlignUtils util = new StringAlignUtils(50, Alignment.CENTER);
System.out.println( util.format(sampleText) );

Java 中的字符串左对齐、右对齐或居中对齐StringAlignUtils您可以根据需要随意编辑和定制。

2. 结论

这个简短的 Java 教程教我们如何在 Java 中对齐长字符串。我们通过示例学习了使用填充空格来左对齐、右对齐和居中对齐。

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.zuozi.net/9219.html

管理员

相关推荐
2025-08-06

文章目录 一、Reader 接口概述 1.1 什么是 Reader 接口? 1.2 Reader 与 InputStream 的区别 1.3 …

988
2025-08-06

文章目录 一、事件溯源 (一)核心概念 (二)Kafka与Golang的优势 (三)完整代码实现 二、命令…

465
2025-08-06

文章目录 一、证明GC期间执行native函数的线程仍在运行 二、native线程操作Java对象的影响及处理方…

348
2025-08-06

文章目录 一、事务基础概念 二、MyBatis事务管理机制 (一)JDBC原生事务管理(JdbcTransaction)…

456
2025-08-06

文章目录 一、SnowFlake算法核心原理 二、SnowFlake算法工作流程详解 三、SnowFlake算法的Java代码…

517
2025-08-06

文章目录 一、本地Jar包的加载操作 二、本地Class的加载方法 三、远程Jar包的加载方式 你知道Groo…

832
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力内容变现

将您的收入提升到一个新的水平

点击联系客服

在线时间:08:00-23:00

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号