当前位置: 首页 > 知识库问答 >
问题:

Java 流畅的接口,用于将字符串方法链接在一起

谷梁宜
2023-03-14

我正在尝试编写一个Java类来执行基本的字符串操作函数。

我希望这个类可以以如下方式调用:

String tmp = StringUtils.RemoveSpaces(str).RemoveSlashes();

或者

String tmp = StringUtils.RemoveSlashes(str).RemoveSpaces();

我在努力思考如何组织这个课程。我猜类中的一些方法或变量将是静态的,并且这些方法将返回“this”。那么如果我的RemoveSlashes方法返回一个字符串给' tmp ',它会怎么做呢?我会被迫使用RemoveSlashes.toString()或RemoveSlashes.getString()或类似的方法吗?似乎有点复杂...

如果您能帮助我处理方法定义和返回类型,我将不胜感激。

共有1个答案

虞祯
2023-03-14

这可能有助于您入门。

public class StringUtil {

    public static void main(String args[]) {
        String url = "http://something.com/ \\ponies";
        String newValue = StringUtil.str(url).removeSlashes().removeSpaces().uppercase().getValue();
        System.out.println(newValue);
    }

    private String value;

    public StringUtil(String value) {
        this.value = value;
    }

    public static StringUtil str(String value) {
        return new StringUtil(value);
    }

    public StringUtil removeSlashes() {
        value = value.replace("\\", "");
        return this;
    }

    public StringUtil removeSpaces() {
        value = value.replace(" ", "");
        return this;
    }

    public StringUtil uppercase() {
        value = value.toUpperCase();
        return this;
    }

    public String getValue() {
        return value;
    }
}
 类似资料:
  • 问题内容: 我正在编写一些代码,并且我需要它来捕获参数并将它们传递给 我(我想要它的默认行为,编写由空格分隔并后跟换行符的参数)。但是它需要而返回。 这是代码示例: 这将返回以下错误: 这是一个错误吗?不应该接受 任何 数组吗?顺便说一句,我也尝试这样做: 但出现以下错误: 有“解决方案”解决方法吗? 问题答案: 这不是错误。需要一个类型。这意味着它必须是值的切片,而不是“任何切片”。为了转换切片

  • 问题内容: 我正在使用github.com/fatih/structs包将struct的所有字段的值转换为函数。看这里。这工作正常,但最终我想通过使用csv包将值写入csv文件。该功能需要作为输入。 简而言之:我如何轻松地将的输出转换为字符串数组? 问题答案: 即使所有值都是具体类型,也不能简单地转换为,因为这两种类型具有不同的内存布局/表示形式。 您必须定义如何用值表示不同类型的值。 最简单和明

  • 我试图转换,和链接从我的描述列,但我只能让他们中的1个工作的时候,我正在寻找的是解决方案多个条件。 以下是我目前拥有的将链接转换为可点击的标签的功能: 逻辑代码 如果说明中有链接,请转换为可点击(http/https) 假设我有以下字符串在我的数据库(描述列) 我从那个字符串得到的是下面的结果(基于我上面的代码) 有什么想法吗?

  • 最近我正在学习Java8个特性,所以我从lambda表达式开始,然后我遇到了Java流API,现在我正在尝试围绕流API中的方法,它们是如何工作的? 我对lambda表达式的理解是,如果我们想将lambda表达式传递给该方法,那么我们需要使用单个未实现的方法(Java 8接口可以有默认实现)创建一个与lambda表达式的签名匹配的接口。然后,传递lambda表达式的方法可以通过调用接口方法来执行l

  • 问题内容: 在回答前面的一些问题以及最近的工作时,我一直在想为什么Java不支持其内置类中的方法链接。 例如,如果我要创建一个类,可以通过以下方法而不是void来使其 可链接: 内置库为什么不倾向于以这种方式执行操作?方法链接有不利之处吗? 我可能忽略了一些可以解释缺少方法链接的内容,但是任何默认返回void的setter方法都应该返回 对此 的引用(至少在我看来应该如此)。这样可以使以下情况更加

  • 问题内容: 在回答前面的一些问题以及最近的工作时,我一直在想为什么Java不支持其内置类中的方法链接。 例如,如果我要创建一个类,可以通过以下方法而不是void来使其 可链接: 内置库为什么不倾向于以这种方式执行操作?方法链接有不利之处吗? 我可能忽略了一些可以解释缺少方法链接的内容,但是任何默认返回void的setter方法都应该返回 对此 的引用(至少在我看来应该如此)。这样可以使以下情况更加