我正在创建一个 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/