Java格式化字符串,左对齐,左补0

摘要:
今天,当我做Java编程发送电子邮件时,我发现电子邮件发送的内容涉及表格形式的数据,不适合使用附件。相反,我只能以对齐方式显示表的内容。一开始,我很苦恼,我不知道如何对齐它们。最后,我编写了以下函数来实现格式化字符串、左对齐和简单函数的功能,但它解决了问题。以下代码可以处理字符串的左对齐输出、自定义补充字符以及自定义补充字符串的长度。

今天在做java编程实现邮件发送的时候,遇到邮件发送的内容涉及表格形式的数据,不适合用附件,只能用对齐的形式来展现表格内容,一开始很苦恼,不知道该怎么对齐,最后写了下面这个函数,实现了格式化字符串,左对齐的功能,很简单的函数,却解决了问题。

  下面这段代码,可以处理字符串的左对齐输出,可以自定义补充的字符(不仅限于‘ ’),可以自定义补充后字符串的长度。
package com.test;  
public class TestFormat {  
  
     TestFormat(){  
     };  
   
     /* c 要填充的字符    
    *  length 填充后字符串的总长度    
    *  content 要格式化的字符串   
    *  格式化字符串,左对齐 
    * */  
 public String flushLeft(char c, long length, String content){             
       String str = "";     
       long cl = 0;    
       String cs = "";     
       if (content.length() > length){     
            str = content;     
       }else{    
            for (int i = 0; i < length - content.length(); i++){     
                cs = cs + c;     
            }  
          }  
        str = content + cs;      
        return str;      
   }    
   
   public static void main(String[]args){  
      TestFormat test1 = new TestFormat();  
      String th1 = test1.flushLeft(' ',6 , "编号");  
      String th2 = test1.flushLeft(' ',10 , "内容");  
      String id1 = test1.flushLeft(' ',6 , "12");  
      String id2 = test1.flushLeft(' ',6 , "1233");  
      String name1 = test1.flushLeft(' ',10 , "abcde");  
      String name2 = test1.flushLeft(' ',10 , "1dd");  
      System.out.print(th1+th2+"\n");  
      System.out.print(id1+name1+"\n");  
      System.out.print(id2+name2+"\n");   
  
   }  
}  

      我们在做数据处理的时候,根据具体要求,可能需要对某些数据,比如数字、字符串,进行格式化输出。其中较为常见的是对数字进行右对齐输出,比如右对齐,左补0.例如:数字12,格式化为0012,数字123,格式化为0123.

下面是实现该需求的两种方法,利用了java本身的格式化功能。
package test;        
public class FormatTest     
  
{     
    public static void main(String[] args)   {     
        int number1 = 5;     
        int number2 = 0;     
        int number3 = -12;     
        System.out.println("\n------------------  方法 1  ------------\n");     
        java.text.DecimalFormat format = new java.text.DecimalFormat("0000");     
        System.out.println(format.format(number1));     
        System.out.println(format.format(number2));     
        System.out.println(format.format(number3));     
    
        System.out.println("\n------------------  方法 2  ------------\n");     
        // 0 代表前面补充0     
        // 4 代表长度为4     
       // d 代表参数为正数型     
      String str1 = String.format("%04d", number1);     
         String str2 = String.format("%04d", number2);     
         String str3 = String.format("%04d", number3);     
         System.out.println(str1);     
         System.out.println(str2);     
         System.out.println(str3);     
    }     
} 

免责声明:文章转载自《Java格式化字符串,左对齐,左补0》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇jar包中的MANIFEST.MF能否手工编辑替换使用sql server中的全文索引下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

利用Func封装“方法重试”功能

利用Func封装“方法重试”功能   忙余,写个利用Func封装方法重试的功能。该方法主要实现带有返回参数的方法实现多次重试,只要返回的结果不是所限定的返回值,则自动重试X次。Talk is cheap. Show me the code. /// <summary> /// 执行重试方法 /// </summary> /// &l...

scala 学习笔记(07) 一等公民的函数

在scala中一切皆对象,一切皆函数,函数跟Int,String、Class等其它类型是处于同等的地位,换句话说,使用函数跟使用普通的类型一样,没什么区别,因此: 1、函数可以赋值给变量,可以当参数传递 def helloWorld(msg: String): Unit = { println("Hello," + msg) }...

JPA-映射MySql text类型

JPA 映射到 MySql 的 text 类型 ——墨问苍生 创建一个Bean jpa如果直接映射mysql的text/longtext/tinytext类型到String字段会报错。需要设置一下@Lob和@Column。 @Lob代表是长字段类型,默认的话,是longtext类型,所以需要下面这个属性来指定对应的类型。 Notice.java...

redis分布式共享锁模拟抢单的实现

本篇内容主要讲解的是redis分布式锁,并结合模拟抢单的场景来使用,内容节点如下: jedis的nx生成锁 如何删除锁 模拟抢单动作 1.jedis的nx生成锁 对于分布式锁的生成通常需要注意如下几个方面: 创建锁的策略:redis的普通key一般都允许覆盖,A用户set某个key后,B在set相同的key时同样能成功,如果是锁场景,那就无法知道到底...

Map遍历法则

    /** * 如果既要遍历key又要value,那么建议这种方式,应为如果先获取keySet然后再执行map.get(key),map内部会执行两次遍历。 * 一次是在获取keySet的时候,一次是在遍历所有key的时候。 */ // 当我调用put(key,value)方法的时候...

Asp.Net 4.0 新特性之 使用自定义OutputCache Provider

Asp.Net 4.0 新特性之 使用自定义OutputCache Provider 在Asp.Net 4.0 的web.config文件中添加了关于缓存的配置节,如下所示: <system.web> <compilation debug="true" targetFramework="4.0" /> <...