Java 将字符替换为点
我希望能够用任何字符串中的点替换字符串的第8个字符。如何做到这一点 现在我有这个:Java 将字符替换为点,java,string,replace,Java,String,Replace,我希望能够用任何字符串中的点替换字符串的第8个字符。如何做到这一点 现在我有这个: if(tempName.length() > 10) { name.setText(tempName.substring(0, 10)); } else { name.setText(tempName); } 如果要用省略号替换8字符后的子字符串,如果字符串长度大于10,可以使用singlestring#replaceAll。你甚至不需要在手之前检查长度。只需使用以下代码: 一行: 另
if(tempName.length() > 10)
{
name.setText(tempName.substring(0, 10));
} else {
name.setText(tempName);
}
如果要用省略号替换
8
字符后的子字符串,如果字符串长度大于10
,可以使用singlestring#replaceAll
。你甚至不需要在手之前检查长度。只需使用以下代码:
一行:
另一个选项当然是一个
子字符串,您已经在其他答案中找到了它。是否尝试用三个点来替换?试试这个:
String original = "abcdefghijklmn";
String newOne = (original.length() > 10)? original.substring(0, 7) + "...": original;
三元运算符(A?B:C)执行以下操作:A是布尔值,如果为true,则计算为B,其他地方计算为C。它可以时不时地保存if
语句。公共静态字符串省略(字符串输入,int maxLength){
public static String ellipsize(String input, int maxLength) {
if (input == null || input.length() <= maxLength) {
return input;
}
return input.substring(0, maxLength-3) + "...";
}
if(input==null | | input.length()abc
1234567890-->1234567890
12345678901-->1234567…有几种方法
1.substring()
和连接
或
2.正则表达式
或
你是在尝试省略字符串吗?比如“我的字符串…”如果长度超过10个字符?没有得到你想要做的。你能举例说明吗?他不是这么说的,但很可能是他想要的。如果是这样,看看你能不能发布一些输入和预期的输出?如果你问如何在某个长度后省略,这个h正如被问了数百次的那样。你还应该解释三元运算符的作用,你不知道OP是否知道它以及它是如何使用的。我认为OP不需要只有3个点,但每个字符都应该替换为第8个字符中的
。@关于三元运算符的反斜杠解释是为了取悦你而添加的;-)public Static String
->public Static String
不应该输入它。length()修改后的答案。谢谢:)太好了!正是我所需要的…真的很感激effprtt这不是他想要的。此代码将用点替换第7个字符后的每个字符-保留相同的长度,但他希望第7个字符后的所有字符都替换为3个点(省略号)-保留正好10的长度。要求是将长度限制为10。@Bohemian。好吧,这是毫无疑问的,他只想要3个点。这只是人们假设的。从他的第一行开始,我知道他想用
替换第8个字符上和之后的所有字符。他确实这么说了。看在他的代码中。所有情况下的最大长度都是10。他当前的代码没有添加点,但他想用点替换从8开始的所有字符-这意味着3点。他请求帮助是因为他的代码没有这样做。我将不得不-1这个。很明显他在问什么。他想要一个。@Bohemian。我已经请求了一些输入和输出。让我们开始吧看看OP想要什么。我会相应地修改我的代码。现在,从他的文本中还不清楚他想要什么。已经有一个答案是正确的,而且看起来很好-只有一行。我期待着看你是否能做得更好。如果你编码得更好的话,给我发消息。我很惊讶你说第一行是凌乱的,第二行是凌乱的干净。@RohitJain看原始编辑。在他编辑之前,我不理解OP的问题。
public static String ellipsize(String input, int maxLength) {
if (input == null || input.length() <= maxLength) {
return input;
}
return input.substring(0, maxLength-3) + "...";
}
// If > 8...
String dotted = src.substring(0, 8) + "...";
// Else...
String dotted = src.length() > 8 ? src.substring(0, 8) + "..." : src;
// If > 8...
String dotted = src.replaceAll("^(.{8}).+$", "$1...");
// Else...
String dotted = src.length() > 8 ? src.replaceAll("^(.{8}).+$", "$1...") : src;