我正在寻找一个简单的公共方法或运算符,它允许我重复一些字符串n次.我知道我可以使用for循环来编写它,但我希望在必要时避免使用循环,并且某处应该存在一个简单的直接方法.
String str = "abc";
String repeated = str.repeat(3);
repeated.equals("abcabcabc");
Run Code Online (Sandbox Code Playgroud)
相关:
repeat string javascript 通过重复给定次数的另一个字符串来创建NSString
编辑
当他们不是完全必要的时候我试着避免循环,因为:
即使它们隐藏在另一个函数中,它们也会增加代码行数.
读我的代码的人必须弄清楚我在循环中做了什么.即使它被评论并且具有有意义的变量名称,它们仍然必须确保它没有做任何"聪明"的事情.
程序员喜欢把聪明的东西放在for循环中,即使我把它写成"只做它想要做的事情",这并不排除有人出现并增加一些额外的聪明"修复".
他们经常容易出错.对于涉及索引的循环,往往会产生一个错误.
For循环经常重用相同的变量,增加了很难找到范围错误的机会.
For循环增加了bug猎人必须看的地方数量.
在C#中,静态属性Environment.Newline根据运行平台而改变.
Java中有类似的东西吗?
我有类似的字符串
"I am a boy".
Run Code Online (Sandbox Code Playgroud)
我想像这样打印
"I
am
a
boy".
Run Code Online (Sandbox Code Playgroud)
有谁能够帮我?
我做了一个小文件作者:
try {
FileWriter writer = new FileWriter(new File("file.txt"), false);
String sizeX = jTextField1.getText();
String sizeY = jTextField2.getText();
writer.write(sizeX);
writer.write(sizeY);
writer.flush();
writer.close();
} catch (IOException ex) {}
Run Code Online (Sandbox Code Playgroud)
现在我想创建一个新行,就像你可以通常使用"\n"一样,但它似乎不起作用......
有谁知道如何制作这样一条新线?
提前致谢!:)
我有一个包含新行的字符串.我将此字符串发送到函数以将String写入文本文件:
public static void writeResult(String writeFileName, String text)
{
try
{
FileWriter fileWriter = new FileWriter(writeFileName);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
bufferedWriter.write(text);
// Always close files.
bufferedWriter.close();
}
catch(IOException ex) {
System.out.println("Error writing to file '"+ writeFileName + "'");}
} //end writeResult function
Run Code Online (Sandbox Code Playgroud)
但是当我打开文件时,我发现它没有任何新行.当我在控制台屏幕中显示文本时,它会以新行显示.如何在文本文件中编写新行字符.
编辑:
假设这是text我发送到上述函数的参数:
I returned from the city about three o'clock on that
may afternoon pretty well disgusted with life.
I had been three months in the old country, and was
Run Code Online (Sandbox Code Playgroud)
如何在文本文件中按原样(使用新行)编写此字符串.我的函数将字符串写在一行中.你能为我提供一种方法来将文本写入文件,包括新行吗?
编辑2: 文本最初是在.txt文件中.我用以下文字阅读了文字:
while((line …Run Code Online (Sandbox Code Playgroud) 我想写一个String(冗长但包裹),来自JTextArea.当字符串打印到控制台时,格式化与它的格式相同Text Area,但是当我使用BufferedWriter将它们写入文件时,它正在String单行写入.
以下代码片段可以重现它:
public class BufferedWriterTest {
public static void main(String[] args) throws IOException {
String string = "This is lengthy string that contains many words. So\nI am wrapping it.";
System.out.println(string);
File file = new File("C:/Users/User/Desktop/text.txt");
FileWriter fileWriter = new FileWriter(file);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
bufferedWriter.write(string);
bufferedWriter.close();
}
}
Run Code Online (Sandbox Code Playgroud)
什么地方出了错?怎么解决这个?谢谢你的帮助!
我需要一个Spring Data Rest上的自定义方法,它有一些输入并返回一个String.
@BasePathAwareController
@RequestMapping(value = "/businessActions")
public class BusinessActionController implements ResourceProcessor<RepositoryLinksResource> {
/**
* This BusinessAction's purpose is: Generiert für ein Modell das entsprechende Barrakuda-File.
* It returns one String.
*/
@RequestMapping(value = "/modellGenerieren", method = RequestMethod.GET)
public String modellGenerieren(@Param(value="project") String project) throws IOException {
// Get project by id from repository and map to string.
return "asdf\n";
}
}
Run Code Online (Sandbox Code Playgroud)
通过使用@BasePathAwareController端点将返回"asdf\n",我想要的输出将是:
asdf
<new line>
Run Code Online (Sandbox Code Playgroud)
我能够通过仅使用产生此输出@Controller,但这打破了基本路径的意识,我需要PersistentEntityResourceAssembler在此控制器的其他方法 - 然后无法注入汇编程序.
我想创建一个文本文件,而不是在没有任何换行符或空格的情况下加载它(这是一个简单的RPG).所以我想测试所有3个主要的OS行分隔符,而不是当前的OS'(s?).我知道我可以使用System.getProperty("line.separator")获取当前版本,但是如何获取Linux,Mac和Windows行分隔符并将它们转换为Java字符串?
编辑:我需要单个字符表示这些,因为由于某种原因"\n"不起作用(是的我在Windows上).
我需要写入字符串ByteArrayOutputStream,但我需要用破坏来编写字符串.我试着这样做:
out.write("123".getBytes());
out.write("\n456".getBytes());
Run Code Online (Sandbox Code Playgroud)
但'\n'不起作用.请告诉我,我该如何解决?或者建议我替换OutputStream来存储字符串(这个操作系统必须允许使用断行)而不需要创建文件.谢谢.
java ×9
newline ×4
string ×3
file ×1
file-io ×1
filewriter ×1
io ×1
parsing ×1
spring ×1
spring-data ×1