Java 如何在Android中限制字符串

Java 如何在Android中限制字符串,java,android,string,Java,Android,String,在我的应用程序中,我想在TextView中显示一些文本(日期) 我从服务器获取此文本,并希望在文本视图中显示此文本。 我从服务器获取以下文本: 2017年12月16日 但我想展示如下: 2017年 如何删除12月16日的 java字符串中的split()方法有两个签名 公共字符串拆分(字符串正则表达式) 和, 公共字符串拆分(字符串正则表达式,整数限制) 在Java中使用拆分字符串是指使用.split(“”,它根据提供的模式拆分字符串,返回字符串数组 示例代码 String date="

在我的应用程序中,我想在
TextView
中显示一些文本(日期)
我从服务器获取此文本,并希望在文本视图中显示此文本。
我从服务器获取以下文本:

2017年12月16日

但我想展示如下:

2017年

如何删除12月16日的

java字符串中的split()方法有两个签名

公共字符串拆分(字符串正则表达式)

和,
公共字符串拆分(字符串正则表达式,整数限制)

在Java中使用拆分字符串是指使用
.split(“”
,它根据提供的模式拆分
字符串
,返回字符串数组

示例代码

String date="16 Dec 2017";
String [] dateParts = date.split(" ");
String day = dateParts[0];
String month = dateParts[1];
String year = dateParts[2];
试试这个使用

java字符串中的split()方法有两个签名

公共字符串拆分(字符串正则表达式)

和,
公共字符串拆分(字符串正则表达式,整数限制)

在Java中使用拆分字符串是指使用
.split(“”
,它根据提供的模式拆分
字符串
,返回字符串数组

示例代码

String date="16 Dec 2017";
String [] dateParts = date.split(" ");
String day = dateParts[0];
String month = dateParts[1];
String year = dateParts[2];

您可以使用“”分隔字符串,即空格,尝试使用“”拆分字符串,如下所示:-

String date = "16 Dec 2017";
String[] date = date.split(" ");
//for only 2017 you can use date[2] 

您可以使用“”分隔字符串,即空格,尝试使用“”拆分字符串,如下所示:-

String date = "16 Dec 2017";
String[] date = date.split(" ");
//for only 2017 you can use date[2] 

请注意,有几种更优雅和正确的方法可以做到这一点,通常你使用一个日期对象,只是改变它的外观

但根据你的愿望,我的回答是:

我不会拆分,因为创建一个数组只获取其中一个元素是一种浪费

您可以使用substring方法

String xdate = "16 Dec 2017";
System.out.println(xdate.substring(xdate.length() - 4, xdate.length()));

请注意,有几种更优雅和正确的方法可以做到这一点,通常你使用一个日期对象,只是改变它的外观

但根据你的愿望,我的回答是:

我不会拆分,因为创建一个数组只获取其中一个元素是一种浪费

您可以使用substring方法

String xdate = "16 Dec 2017";
System.out.println(xdate.substring(xdate.length() - 4, xdate.length()));

在java 8中,您可以这样做:

Date date = new Date(); //Create a Date object with date provided from TextBox
LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
int year  = localDate.getYear();
int month = localDate.getMonthValue();
int day   = localDate.getDayOfMonth();

因为您只需要年份
int year=localDate.getYear()将为您提供一年

在java 8中,您可以这样做:

Date date = new Date(); //Create a Date object with date provided from TextBox
LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
int year  = localDate.getYear();
int month = localDate.getMonthValue();
int day   = localDate.getDayOfMonth();

因为您只需要年份
int year=localDate.getYear()将为您提供一年

如果您想要只包含年份的日期子字符串,即最后4个数字,请尝试下面的代码

    String date="16 Dec 2017";
    int a = date.length();
    String d = date.substring(a-4,a);

如果您想要只包含年份的日期子字符串,即最后4个数字,请尝试下面的代码

    String date="16 Dec 2017";
    int a = date.length();
    String d = date.substring(a-4,a);
试试这个

public static String getYyyy(String date) {
        String time = date;
        try {
            SimpleDateFormat format = new SimpleDateFormat("dd MMM yyyy");
            Date date1 = format.parse(date);
            if (date1 != null) {
                time = new SimpleDateFormat("yyyy").format(date1);
            }
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return time;
    }
试试这个

public static String getYyyy(String date) {
        String time = date;
        try {
            SimpleDateFormat format = new SimpleDateFormat("dd MMM yyyy");
            Date date1 = format.parse(date);
            if (date1 != null) {
                time = new SimpleDateFormat("yyyy").format(date1);
            }
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return time;
    }

如果有日期和时间或更多日期数据,也可以尝试此操作,而不是拆分

String requested_date = "16 Dec 2017";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd MMM yyyy");
Date dateObj = simpleDateFormat.parse(requested_date,new ParsePosition(0));
dateObj.getYear();

如果有日期和时间或更多日期数据,也可以尝试此操作,而不是拆分

String requested_date = "16 Dec 2017";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd MMM yyyy");
Date dateObj = simpleDateFormat.parse(requested_date,new ParsePosition(0));
dateObj.getYear();