如何从字符串数组中删除最后一个字符?

时间:2018-03-07 17:42:29

标签: arrays arraylist


我有一个填充了日期+时间的String ArrayList。格式为:“11 04 2017 - 12:45:54”

我想更改格式,只显示日期:“11 04 2017”并将其保存到另一个阵列。

如何剪切数组的最后几个字符?

package com.example.hodor.stringcut;

    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.widget.EditText;

    import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

private EditText textView, textView1;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    textView = (EditText) findViewById(R.id.editText);
    textView1 = (EditText) findViewById(R.id.editText1);

    ArrayList<String> listDate = new ArrayList<>();
    ArrayList<String> listDate1 = new ArrayList<>();

    listDate.add("10 - 07 - 2017 - 12:32:45");
    listDate.add("10 - 07 - 2017 - 12:35:45");
    listDate.add("10 - 07 - 2017 - 12:36:45");
    listDate.add("10 - 07 - 2017 - 12:38:45");
    listDate.add("10 - 07 - 2017 - 12:30:45");

    textView.setText(listDate[1]);

    for (int i = 0; i < listDate.length; i++) {

        listDate1[i] = listDate[i].substring(0, listDate[i].length(), -10);
        textView.setText(listDate1[1]);
    }
}

}

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

试试这个。它对我有用

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ll_principal_menu"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:background="?attr/colorPrimaryDark"
android:elevation="6dp"
android:minHeight="?attr/actionBarSize" />

<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>

答案 1 :(得分:0)

您最初的substring(0, length - 11)概念是正确的。你只是遇到类型问题。

listDate的类型为ArrayListsubstring方法不适用于此。它适用于String类型的元素。

您还将ArrayList类型与java primitive arrays混为一谈。以下是how to utilize an ArrayList的一些示例。

但是一旦你对此感到满意,这段代码......

public static void main(String[] args) {
    String date = "10 - 07 - 2017 - 12:30:45";
    String modifiedDate = date.substring(0, date.length() - 10);
    System.out.println(modifiedDate);
}

输出......

  

10 - 07 - 2017

在更高的层面上,如果你要做的是解析日期,那么Brandon共享的链接会更加贴切。