具有字符串和指定长度的 Java 类

标签 java oop exception

我正在创建一个 java 程序,它创建一个文件并用字符串形式的数据填充它,记录中的每个字段都限制在特定长度内。

我认为我需要做的是创建一个类,该类具有用于数据字段的字符串和指定字符串长度的长度。然后以某种方式限制它,以便字符串永远不会超过此长度,方法是通过保释、用空格填充(如果数据输入小于长度)或截断结尾以使数据适合。

我的第一个问题是是否已经有一个基础类可以做到这一点,还是我应该自己动手。

我的第二个问题是,如果我自己动手,我如何确保在构造类时内部字符串的初始值小于指定的长度,我在别处读到构造函数应该返回一个值,但是构造函数引发异常是否有效?

感谢您的帮助。

最佳答案

这是我的看法 - 它满足您问题中的所有要求。您会注意到,我已选择使用 IllegalArgumentException 拒绝非法赋值。

package com.pragmaticsoftwaredevelopment.stackoverflow;

public class FixedLengthString {
   private String string=null;
   private int length=-1;
   public FixedLengthString(int length) { 
      this.length = length; 
   }
   public void setValue (String str) {
      if (str.length() > length)
         throw new IllegalArgumentException("ERROR: Assigned string length (" + str.length() + ") exceeded given limit (" + length + ")");
      else
         this.string = str;
   }
   public String toString() {
      return String.format("%1$-" + length + "s", string);

   }
   public String getString() { 
      return toString();
   }
}


关于具有字符串和指定长度的 Java 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1425378/

相关文章:

c++ - Qt4:访问父类的最佳方式(1级,2级......)

c# - Java 中是否有 C# Thread.CurrentThread.CurrentCulture 的替代方案?

java - Jenkins 无法连接到 ldaps ://server

java - 归并排序错误

java - 输出中的换行符

c++ - 尝试抛出异常处理

java - 我应该使用什么模式来使用 SAX 解析器?

javascript - Javascript 中的单例和原型(prototype)设计

java - 如何获取特定范围内可能发生的所有可能异常的列表

java - 在 Java-8 中捕获多个异常