字符串数组到没有最后一个索引值的字符串

时间:2018-12-21 06:09:02

标签: java arrays string

我正在使用Java中的String和String []。

我有一个String [],想转换为String,但不希望其中包含最后一个索引值。

//## AppDelegate.swift


import UIKit
import Fabric
import Crashlytics

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?


    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        Fabric.with([Crashlytics.self])

        return true
    }
}

//## ViewController.swift 
//## Put a button in center, with `@IBAction` when clicked.

@IBAction func OnBtnTest(_ sender: Any) {

    Crashlytics.sharedInstance().crash()
}

我只希望新字符串为String[] arr = new String[]{"1","2","3","4"};

是的,我可以迭代arr直到倒数第二个索引,并在新字符串中分配值。但是还有其他更聪明的方法吗?

2 个答案:

答案 0 :(得分:0)

我考虑三种方式。

第一个正在使用StringBuilder。这使您可以完全控制垃圾,从而减少垃圾。 (我想要这个)

public static String convert(String... arr) {
    // in case of arr is really big, then it's better to first
    // calculate required internal buffer size, to exclude array copy
    StringBuilder buf = new StringBuilder();

    for(int i = 0; i < arr.length - 1; i++)
        buf.append(arr[i]);

    return buf.toString();
}

另一种方法是使用Java8功能String.join()

public static String convert(String... arr) {
    return String.join("", arr).substring(0, arr.length - 1);
}

最后使用Stream

public static String convert(String... arr) {
    return Arrays.stream(arr, 0, arr.length - 1).collect(Collectors.joining(""));
}

答案 1 :(得分:-1)

尝试

    String[] arr = new String[]{"1","2","3","4"};
    String newString = "";

    for (int i = 0; i < arr.length -1 ; i++) {
        newString += arr[i];
    }


    System.out.print(newString);

输出

  

123