我想转换一个类似于以下形式的文本正文:
text here
text there
text everywhere
成一个字符串,如下所示:
textheretexttheretexteverywhere
编辑:多行上的文本将从一个文件复制并粘贴到程序的输入中,但它不一定是.txt文件。
这是我到目前为止所拥有的:
public static void converter(String inputString){
String refinedString = inputString.replaceAll("\\s+","").replaceAll("\\\\n+", "");
System.out.println();
System.out.println("Refined string: " + refinedString);
}
这是我调用converter
方法的主要功能:
public static void main(String [] args){
System.out.println("Enter string: ");
Scanner input = new Scanner(System.in);
String originalString = input.nextLine();
System.out.println("Original string: " + originalString);
converter(originalString);
}
非常感谢提前!
(我是编程的新手,很抱歉,如果我遗漏了一些非常明显的东西,我已经尝试了在堆栈溢出时可以找到的所有内容)
答案 0 :(得分:3)
试试这个:
String line = "";
File f = new File("Path to your file");
FileReader reader = new FileReader(f)
BufferedReader br = new BufferedReader(reader);
String str = "";
while((line = br.readlLine())!=null)
{
str += line;
}
System.out.println(str);
代表空格:
str = StringUtils.replace(str," ","");
答案 1 :(得分:0)
你差不多了!您唯一“失踪”的是您在不需要的时候添加了额外的.replaceAll
。
此外,听起来您可能有不同类型的输入,但这里有一个基于您的代码的解决方案:
编辑:以下是以下解决方案:
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String [] args){
System.out.println("Enter string: ");
Scanner input = new Scanner(System.in);
List<String> lines = new ArrayList<> ();
String line = null;
while (!(line = input.nextLine()).isEmpty()) {
lines.add(line);
}
StringBuilder myOriginalString = new StringBuilder();
for (String s : lines) {
myOriginalString.append(s);
myOriginalString.append(" ");
myOriginalString.append("\n");
}
String originalString = myOriginalString.toString();
System.out.println("Original string: \n" + originalString);
converter(originalString);
}
public static void converter(String inputString){
String refinedString = inputString.replaceAll("\\s+","");
System.out.println();
System.out.println("Refined string: " + refinedString);
}
}
输出:
Enter string:
text here
text there
text everywhere
Original string:
text here
text there
text everywhere
Refined string: textheretexttheretexteverywhere
Process finished with exit code 0
我尽力围绕你要提供的输入类型进行建模。根据您的问题,我假设您在运行程序时将文本复制并粘贴到提示符中。如果你想从一个文件中读取,那么Mahbubur Rahman的答案是正确的(我不会在这个答案中复制它,因为他值得赞扬。)
答案 2 :(得分:0)
这应该有用。
String list = "text here\n";
list += "text there\n";
list += "text everywhere\n";
System.out.println("Original :\n"+list);
list= list.replace("\n", "").replace(" ", "");
System.out.println("New :\n"+list);