如何得到一个字符串最后一个.之前的所有字符
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何得到一个字符串最后一个.之前的所有字符相关的知识,希望对你有一定的参考价值。
public static void main(String[] args)String str1="abcdefghij";
String str=(str1.subSequence(0,str1.length()-1)).toString(); //截取该字符串从开始位置到倒数第二个字符的位置,并转为字符串形式。
System.out.println(str);
如果你说的是 小数点前面的所有字符就是下面这段:
public static void main(String[] args)
String str1="abc.def.ghi.j";
int num=0;
while((str1.indexOf(".", num))!=-1)
num=str1.indexOf(".",num)+1;
String str=(str1.subSequence(0,num-1)).toString();
System.out.println(str);
参考技术A 你可以通过算出数字和字母的个数来推算出字符串的个数。
如何在Java中使用正则表达式模式在字符串的最后一个字母之前插入-符号
【中文标题】如何在Java中使用正则表达式模式在字符串的最后一个字母之前插入-符号【英文标题】:how to insert a - symbol before the last alphabet in a string using regex pattern in java 【发布时间】:2020-10-20 06:28:33 【问题描述】:嗨,我有一个值,例如 023A,我需要通过删除前导 0 将其替换或格式化为 23-A,它是 123A,它应该是 123-A 任何人都可以在 java regex 中帮助我如何做到这一点?
【问题讨论】:
这里的替换逻辑请描述的更清楚。 input.replaceAll("^(0*)(.*)(\\w)$", "$2-$3"); 假设感兴趣的字符串由一个或多个数字后跟一个大写字母组成,您可以将正则表达式\b0*(\d+)([A-Z])\b
的匹配替换为"$1-$2"
、$1
和$2
捕获组 1 和 2 的内容。ref
@CarySwoveland 添加评论链接的工具提示说:避免在 cmets 中回答问题。我认为您的评论是一个很好的答案。
【参考方案1】:
我已经编写了一些特定于您所要求的模式的代码,希望对您有所帮助。
代码:
import java.util.Scanner;
public class Demo
static String format(String str)
String string = "";
try
//remove every non-numerical character at the start of string, if there is
//remove every zero at the start of string
while(str.startsWith("0") || Character.isLetter(str.charAt(0)))
str = str.substring(1);
//Gets the index of firstmost non-numerical character
int index = 0;
boolean valueFound = false;
for(int i = 0; i <= str.length() -1; i++)
if(Character.isLetter(str.charAt(i)))
index = i;
valueFound = true;
break;
if(valueFound)
string = str.replaceFirst(String.valueOf(str.charAt(index)), "-" +
String.valueOf(str.charAt(index)));
catch(Exception ex)ex.printStackTrace();
return string;
public static void main(String[] args)
Scanner in = new Scanner(System.in);
System.out.print("Input a combination : ");
String line = in.nextLine();
System.out.println("Input :" + line);
System.out.println("Output :" + format(line));
测试 1:
Input a combination : 023A
Input :023A
Output :23-A
测试 2:
Input a combination : 123A
Input :123A
Output :123-A
【讨论】:
以上是关于如何得到一个字符串最后一个.之前的所有字符的主要内容,如果未能解决你的问题,请参考以下文章