public string Format { get { return string.Format("{0}{1}v{1}", LastManStanding ? "FFA " : string.Empty, m_Teams.PlayersPerTeam); } }
Run Code Online (Sandbox Code Playgroud)
我应该选择使用StringBuilder吗?
我不确定有条件地格式化这样的字符串有多么错误,而不是做
public string Format
{
get
{
StringBuilder sb = new StringBuilder();
if(LastManStanding)
sb.Append("FFA ");
sb.Append(string.Format("{0}v{0}", m_Teams.PlayersPerTeam);
return sb.ToString();
}
}
Run Code Online (Sandbox Code Playgroud) 说我有一个StringBuilder对象
var sb = new StringBuilder();
Run Code Online (Sandbox Code Playgroud)
还有一个串联的字符串
var s = new []{"a","b","c"};
Run Code Online (Sandbox Code Playgroud)
这是将它们插入stringbuilder实例的"最快"方法吗?
sb.Append(string.join(string.empty, s));
Run Code Online (Sandbox Code Playgroud)
或者确实StringBuilder有一个我忽略的功能?
编辑:对不起,我不知道sb将包含多少项,或每个字符串[]中可能有多少项.
我发生错误时会生成一封电子邮件.我正在使用StringBuilder.AppendLine()并StringBuilder.AppendLine(String)建立电子邮件的正文,但是我的电子邮件正文显示为一个非常长的行,没有换行符.
例如:
Dim ErrorsStringBuilder As New StringBuilder
ErrorsStringBuilder.AppendLine(String.Format("Status : {0} Message : {1}", Results.Status, Results.ErrorMessage))
ErrorsStringBuilder.AppendLine(String.Format("Failed : {0} Total : {1}", Results.FailedCount, Results.TotalCount))
ErrorsStringBuilder.AppendLine("Batch #: " & Results.BatchNumber)
ErrorsStringBuilder.AppendLine()
ErrorsStringBuilder.AppendLine("Individual Errors:")
ErrorsStringBuilder.AppendLine()
For Each FailedRecord .......
ErrorsStringBuilder.AppendLine(String.Format("Failed Record ID : {0} Message : {1}", FailedRecord.ID, FailedRecord.ErrorText))
Next
Run Code Online (Sandbox Code Playgroud)
这是从MSDN为了描述.AppendLine()和.AppendLine(String)分别.
将默认行终止符追加到当前StringBuilder对象的末尾.
将指定字符串的副本后跟默认行终止符附加到当前StringBuilder对象的末尾.
我的问题是:为什么没有换行?为什么没有应用默认行终止符?我误解了描述吗?
PS.我确实看过这个问题,但没有解释原因.
而且我知道我可以使用System.Environment.NewLine或"\n"获取换行符.
我正在使用txt文件进行我的关卡设计.我使用下面的内容并转换为字符串缓冲区,然后遍历这些行来生成我的游戏对象.
问题是它从上到下读取,因此我必须将我的水平设计为颠倒,以使它们正确.
如何更改流以相反的方式读取?或者以相反的方式将行写入String Builder?
private static String convertStreamToString(InputStream is) {
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line = null;
try {
while ((line = reader.readLine()) != null) {
sb.append((line + "\n"));
}
} catch (IOException e) {
Log.w("LOG", e.getMessage());
} finally {
try {
is.close();
} catch (IOException e) {
Log.w("LOG", e.getMessage());
}
}
return sb.toString();
Run Code Online (Sandbox Code Playgroud) 我可能会走很长的路,希望我可以在没有代码的情况下解释这一点,因为代码到处都是.
我想要的是一个字符串
static String locationOneStr = new String ("res/.png");
static StringBuilder locationOneStrBuilder = new StringBuilder(locationOneStr);
Run Code Online (Sandbox Code Playgroud)
它包含我想稍后调用的URL的基本形式.
稍后出现的代码会找到位于0或'locationOne'的数字,并且交换机会选择要使用的代码:如果是0,则在.png之前插入0,如果它是1,则插入1等.
public static StringBuilder locationOneNumber(StringBuilder forCharConv, StringBuilder locationOneStrBuilder) {
char localChar = forCharConv.charAt(0);
switch (localChar) {
case '0':
BpmCalcFrame.locationOneStrBuilder.insert(3,"0");
System.out.println("Zero");
break;
/*
*
* Other Cases Omitted
*/
default:
System.out.println("There is no valid input!");
break;
}
return;
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是交换机必须返回一些东西.然而,我用作测试环境的jframe期望URL的字符串.
JLabel locationOne = new JLabel("Image 1");
locationOne.setBackground(Color.WHITE);
locationOne.setIcon(new ImageIcon(ArrayComparison.locationOneNumber(forCharConv, locationOneStrBuilder)));
locationOne.setBounds(172, 45, 36, 68);
contentPane.add(locationOne);
Run Code Online (Sandbox Code Playgroud)
我正在使用StringBuilder,因为Strings占用了内存,但是如果我必须将StringBuilder转换为String,那么它就无法使用StringBuilder
我是以错误的方式解决这个问题还是我真的必须转换回字符串?这意味着我将在整个程序的生命周期中平均每秒制作2个新对象.
有没有一种方法可以将StringBuilder的实例作为String而不创建新对象?
我想找到StringBuilder反向方法的时间复杂度.这里是反向方法的源代码:
public AbstractStringBuilder reverse() {
boolean hasSurrogate = false;
int n = count - 1;
for (int j = (n-1) >> 1; j >= 0; --j) {
char temp = value[j];
char temp2 = value[n - j];
if (!hasSurrogate) {
hasSurrogate = (temp >= Character.MIN_SURROGATE && temp <= Character.MAX_SURROGATE)
|| (temp2 >= Character.MIN_SURROGATE && temp2 <= Character.MAX_SURROGATE);
}
value[j] = temp2;
value[n - j] = temp;
}
if (hasSurrogate) {
// Reverse back all valid surrogate pairs
for (int i …Run Code Online (Sandbox Code Playgroud) 我在调用
sb.append(i+"\n");
Run Code Online (Sandbox Code Playgroud)
哪里
StringBuilder sb= new StringBuilder();
int i.
Run Code Online (Sandbox Code Playgroud)
什么是i +"\n"转换到这里 - 一个String,一个StringBuffer,CharSequence,字符数组,......?
StringBuilder有append()每个接受一个param,它是一个Object,一个String,一个StringBuilder(这个是私有方法),一个StringBuffer,一个CharSequence参数,一个字符数组,...等等.我试图找出哪些被调用 - 希望避免调用String参数进行快速处理.
提前致谢.
我有一条消息,我打印出实体名称及其计数.我用过StringBuilder课.我有这样的代码:
message.AppendFormat("Items1: {0}",item1count).AppendLine();
message.AppendFormat("Items2Byb: {0}",item2count).AppendLine();
message.AppendFormat("Items3STCDEE: {0}",item3count).AppendLine();
message.AppendFormat("Items4HTECEEGG: {0}",item4count).AppendLine();
message.AppendFormat("ItemsASSTEC: {0}",item5count).AppendLine();
Run Code Online (Sandbox Code Playgroud)
结果如下:
Items1: 1
Items2Byb: 3
Items3STCDEE 5
Run Code Online (Sandbox Code Playgroud)
我想要的是正确对齐,无论项目名称的长度是多少:
Items1: 1
Items2Byb: 3
Items3STCDEE 5
Run Code Online (Sandbox Code Playgroud) 我有以下代码行:
return ROOT_USER_IMAGE_PATH + File.separator + userId
+ File.separator + nameWithoutExtension + "__"
+ new SimpleDateFormat("yyyyMMddhhmm").format(new Date())
+ extension;
Run Code Online (Sandbox Code Playgroud)
在代码审查中,我的同事说我用它替换了它StringBuilder.
我知道它会更快地运行,但我认为这种增强功能绝对是次要的,没有人能够感受到它.
当我们有大量的记忆时,你认为在现代情况下鲤鱼和这样的未成年人有什么意义?
StringBuilder隐藏元音:
String bienvenue_intro = " Welcome! Java First Semester: 455, java street: City (State): Country: 575757 ";
StringBuilder sb = new StringBuilder(bienvenue_intro);
String[] introduction = bienvenue_intro.split(":");
for (int i = 0; i < bienvenue_intro.length(); i++) {
char c = bienvenue_intro.charAt(i);
if ((c == 'A') || (c == 'a') ||
(c == 'E') || (c == 'e') ||
(c == 'I') || (c == 'i') ||
(c == 'O') || (c == 'o') ||
(c == 'U') || (c == 'u')) …Run Code Online (Sandbox Code Playgroud)