将字符串分成三分之一

Splitting a string into thirds

我正在进行另一项编码测试...只是测试我遇到尖峰的一些知识。我知道如何将一个字符串分成两半 String.substring blah blah...但是我如何分成三份?我想保存到 3 个字符串,"firsthalf" "secondhalf" 和 "thirdhalf" 有人帮我吗?

(到目前为止的代码):

String text = "abspqrtnf";
    String firsthalf = text.substring(0, text.length() / 3);
    String secondhalf = text.substring(text.length() / 3);
    String thirdhalf = text.substring(text.length() / 3);
String text = "abspqrtnf";
String firsthalf = text.substring(0, (text.length() / 3));
String secondhalf = text.substring(text.length() / 3,(text.length()*2 / 3));
String thirdhalf = text.substring((text.length()*2 / 3),text.length());
System.out.println(secondhalf + "   " +firsthalf + "   "+ thirdhalf);

继续您开始的方式:

String text = "abspqrtnf";
int textLength = text.length();
String firsthalf = text.substring(0, textLength / 3);
String secondhalf = text.substring(textLength / 3, text.length() / 3 * 2);
String thirdhalf = text.substring(text.length() / 3 * 2);
  • secondhalf 需要从 firsthalf 结束的地方开始并且 'go' 两倍
  • thirdhalf 需要从 secondhalf 结束的地方开始并走到最后

如前所述,您需要决定如果字符串长度不能被 3 整除(截断或更长的最后一个字符串)要做什么,并且还要满足小于 3 的输入字符串。 建议编写一些单元测试来涵盖这些用例。 下面的一些简单代码作为替代的部分解决方案。

    String input = "abcdefghij";

    if( input.length() >= 3 )
    {
        int singleStringLen = input.length() / 3;
        int index = singleStringLen;

        System.out.println( input.substring( 0, index ) );
        System.out.println( input.substring( index, (index += singleStringLen) ) );
        // last string maybe longer if input string not divisible by 3
        System.out.println( input.substring( index, input.length() ) );
    }