Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将字符替换为点_Java_String_Replace - Fatal编程技术网

Java 将字符替换为点

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。你甚至不需要在手之前检查长度。只需使用以下代码: 一行: 另

我希望能够用任何字符串中的点替换字符串的第8个字符。如何做到这一点

现在我有这个:

if(tempName.length() > 10)
{
     name.setText(tempName.substring(0, 10));
} else {
     name.setText(tempName);
}

如果要用省略号替换
8
字符后的子字符串,如果字符串长度大于
10
,可以使用single
string#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;