这就是问题。
(1)__也是一颗星。(2)__围绕太阳旋转。
edittext1:_______ edittext2:_______
所以在第一个空白处,我显示了用户在编辑文本中输入的内容。 如果他键入Sun,那么输出将如下所示。
(1)_Sun_也是一颗星。(2)__围绕太阳旋转。
edittext1: Sun edittext2:_______
所以对于(1)我用我的编辑文本值替换“__”,如上所述。 怎么做(2)。 我用(2)尝试了相同的逻辑,但它也替换了第一个值。
(1)行星也是一颗星。(2)行星围绕着太阳。
edittext1: Sun
edittext2:行星
from smart_selects.db_fields import ChainedForeignKey
class Department(models.Model):
department_name = models.CharField(max_length=20)
def __str__(self):
return self.department_name
class UserProfile(models.Model):
user = models.OneToOneField(User)
user_department = models.ForeignKey("Department")
def __str__(self):
return self.user.username
class SuperUser(models.Model):
superuser = models.OneToOneField(User,limit_choices_to={'is_superuser':True},unique=True)
head_department = models.ForeignKey("Department")
def __str__(self):
return self.superuser.username
class Request(models.Model):
# user = models.ForeignKey(User,null=True,related_name="user")
department = models.ForeignKey("Department")
request_type = models.CharField(max_length=20,choices=typechoices)
priority=models.CharField(max_length=20,choices=prioritychoices)
description = models.TextField()
sample = models.FileField(storage=fs,blank=True,null=True)
approval_flag = models.BooleanField(default=False)
status = models.CharField(max_length=20,choices=statuschoices,default='pending')
created=models.DateTimeField(auto_now_add=True,null=True)
modified = models.DateTimeField(auto_now=True)
assigned_to = ChainedForeignKey(UserProfile,blank=True,null=True,chained_field="department",chained_model_field="user_department",show_all=False)
approval_by = ChainedForeignKey(SuperUser,related_name="apprby",blank=True,null=True,chained_field="department",chained_model_field="head_department",show_all=False)
def __str__(self):
return str(self.id)
以上是完整的代码。
答案 0 :(得分:1)
String string = "(1)__ is also a star.(2)__ revolves around the Sun.";
//First do a string split:
// then you'll have an array of strings
String[] parts = string.split("__");
在第二个编辑文本侦听器中,您可以更改parts数组的第二个元素的结尾。 在第一个元素中,您可以更改第一个元素的结尾,依此类推。
要显示,只需打印整个字符串数组
答案 1 :(得分:0)
你不能。
您必须使第一个和第二个空白不同才能进行准确替换。您可以通过添加不同数量的下划线来实现此目的
String sentence = "(1)___ is also a star.(2)__ revolves around the Sun.";
sentence.replace("___", "Sun");
sentence.replace("__", "Planet");
或者您可以包含用于区分空白
的数字String sentence = "(1)__ is also a star.(2)__ revolves around the Sun.";
sentence.replace("(1)__", "(1)" + "Sun");
sentence.replace("(2)__", "(2)" + "Planet");
答案 2 :(得分:0)
您可以使用以下功能:
String s = "1 abc 1 def";
Log.e("Test", replace(s, "1", "1test", "2test")); --> value: 1test abc 2test def
// fuction to replace
private String replace(String source, String toReplace, String... replacements) {
StringBuilder stringBuilder = new StringBuilder(source);
int startIndex = 0;
for (int i = 0; i < replacements.length; i++) {
int index = stringBuilder.indexOf(toReplace, startIndex);
if (startIndex < 0) {
break;
}
stringBuilder.replace(index, index + toReplace.length(), replacements[i]);
startIndex = index + replacements.length;
}
return stringBuilder.toString();
}