1 Star 0 Fork 0

孤寂灬无痕/algorithm

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
src/com/youngdream/algorithm
medium
simple
array
hash
integer
list
queue
sql
stack
string
BackspaceCompare.java
BalancedStringSplit.java
BuddyStrings.java
CalPoints.java
CanPermutePalindrome.java
CheckPermutation.java
CheckRecord1.java
CommonChars.java
CompressString.java
CountBinarySubstrings.java
CountCharacters.java
CountTheNumbersOfWrods.java
DayOfYear.java
DaysBetweenDates.java
DetectCapitalUse.java
DiStringMatch.java
FindLUSlength.java
FindRestaurant.java
FirstUniqChar.java
FreqAlphabets.java
GetHint.java
IsAlienSorted.java
IsFlipedString.java
IsLongPressedName.java
IsPathCrossing.java
IsPrefixOfWord.java
IsSubsequence.java
IsUnique.java
JudgeCircle.java
LargeGroupPositions.java
LetterCasePermutation.java
LicenseKeyFormatting.java
LongestPalindrome.java
LongestWord.java
MasterMind.java
MaxNumberOfBalloons.java
MaxPower.java
MaxScore.java
MinDeletionSize.java
MostCommonWord.java
NumJewelsInStones.java
NumSmallerByFrequency.java
NumSpecialEquivGroups.java
NumUniqueEmails.java
NumberOfLines.java
Reformat.java
ReformatDate.java
RemoveOuterParentheses.java
RemovePalindromeSub.java
ReorderLogFiles.java
RepeatedStringMatch.java
RepeatedSubstringPattern.java
ReplaceSpace.java
ReplaceSpaces.java
ReverseLeftWords.java
ReverseOnlyLetters.java
ReverseStr2.java
ReverseWords.java
ReverseWords3.java
RotateString.java
ShortestCompletingWord.java
ShortestToChar.java
SortString.java
ToGoatLatin.java
ToLowerCase.java
UncommonFromSentences.java
ValidPalindrome2.java
test
thread
tree
README.md
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
ReformatDate.java 2.68 KB
一键复制 编辑 原始数据 按行查看 历史
孤寂灬无痕 提交于 5年前 . 转移
package com.youngdream.algorithm.simple.string;
/**
* @author YD
* @email 994300880@qq.com
* @date 2020/7/17 13:43
*/
public class ReformatDate {
/**
* 给你一个字符串 date ,它的格式为 Day Month Year ,其中:
* Day 是集合 {"1st", "2nd", "3rd", "4th", ..., "30th", "31st"} 中的一个元素。
* Month 是集合 {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"} 中的一个元素。
* Year 的范围在 ​[1900, 2100] 之间。
* 请你将字符串转变为 YYYY-MM-DD 的格式,其中:
* YYYY 表示 4 位的年份。
* MM 表示 2 位的月份。
* DD 表示 2 位的天数。
* <p>
* 示例 1:
* 输入:date = "20th Oct 2052"
* 输出:"2052-10-20"
* <p>
* 示例 2:
* 输入:date = "6th Jun 1933"
* 输出:"1933-06-06"
* <p>
* 示例 3:
* 输入:date = "26th May 1960"
* 输出:"1960-05-26"
*  
* 提示:
* 给定日期保证是合法的,所以不需要处理异常输入。
*
* @param date 给定字符串
* @return 转变后的字符串
*/
public String reformatDate(String date) {
int len = date.length();
StringBuilder sb = new StringBuilder();
//添加年
sb.append(date, len - 4, len);
sb.append('-');
//添加月
sb.append(getNumber(date.substring(len - 8, len - 5)));
sb.append('-');
//添加日
if (len == 12) {
sb.append('0');
}
sb.append(date, 0, len - 11);
//正则影响性能
// String[] s = date.split(" ");
// String day = s[0];
// if (day.length() == 3) {
// day = "0" + day.charAt(0);
// } else {
// day = day.substring(0, 2);
// }
// String month = getNumber(s[1]);
// String year = s[2];
// return year + "-" + month + "-" + day;
return sb.toString();
}
String getNumber(String month) {
switch (month) {
case "Jan":
return "01";
case "Feb":
return "02";
case "Mar":
return "03";
case "Apr":
return "04";
case "May":
return "05";
case "Jun":
return "06";
case "Jul":
return "07";
case "Aug":
return "08";
case "Sep":
return "09";
case "Oct":
return "10";
case "Nov":
return "11";
default:
return "12";
}
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/qq994300880/algorithm.git
git@gitee.com:qq994300880/algorithm.git
qq994300880
algorithm
algorithm
master

搜索帮助