dev*_*oid 2 java string filter
我试图读取字符串的第7行,以便我可以过滤所需的文本,但没有得到更多.(假设我有n行).
class Lastnthchar {
public static void main(String[] args) {
// TODO Auto-generated method stub
String alldata =" FORM"+"\n"+
" to get all data"+"\n"+
" PART A is mandatory"+"\n"+
" enclose all Certificate"+"\n"+
" Certificate No. SFDSFDFS Last updated on 12-Jun-2009"+"\n"+
" Name and address"+"\n"+
" Lisa Lawerence"+"\n"+
" 10/3 TOP FLOOR, Street no 22 ,NewYork"+"\n"+
" residence"+"\n"+
" zip-21232"+"\n"+
" C 78,New York"+"\n"+
" US"+"\n"+
" US"+"\n"+
" "+"\n"+
" worldwide";
String namerequired = new String ();
//BufferedReader br = new BufferedReader(alldata);
int lineno = 0;
for(lineno = 0; lineno <alldata.length(); lineno ++)
{
//what should i do?
}
}
}
Run Code Online (Sandbox Code Playgroud)
所以如果有任何解决方案请帮助
alldata.length() 将返回字符串的长度(即字符数),而不是行数.
为了得到第n 个行,你需要将串在换行符拆分,例如
alldata.split("\n")[6],以获得7 个线(提供有至少7线).这也假设你\n的字符串中有换行符()而不仅仅是回车符(\r).如果要单独或组合拆分,可以将参数更改split()为"\r\n|\n|\r".如果要跳过空行,可以按至少一个换行符或回车符的任意顺序进行拆分,例如"[\r\n]+".
例:
System.out.println("--- Input:");
String input = "A\nB\rC\n\nD\r\nE";
System.out.println(input);
System.out.println("--- 4th element, split by \\n:");
System.out.println(input.split("\n")[3]); //3rd element will be "D\r"
System.out.println("--- 4th element, split by \\r\\n|\\n|\\r:");
System.out.println(input.split("\r\n|\n|\r")[3]); //3rd element will be an empty string
System.out.println("--- 4th element, split by [\\r\\n]+:");
System.out.println(input.split("[\r\n]+")[3]); //3rd element will be "D"
System.out.println("--- END");
Run Code Online (Sandbox Code Playgroud)
输出:
--- Input:
A
B
C
D
E
--- 4th element, split by \n:
D
--- 4th element, split by \r\n|\n|\r:
--- 4th element, split by [\r\n]+:
D
--- END
Run Code Online (Sandbox Code Playgroud)
或者,如果您正在从某些流中读取文本(例如,从文件中读取),则可以使用BufferedReader#readLine()并计算行数.此外,您可以初始化BufferedReader用FileReader,StringReader等等,这取决于在那里你看从输入上.
如果您正在从控制台读取,Console该类也有一个readLine()方法.
| 归档时间: |
|
| 查看次数: |
1498 次 |
| 最近记录: |