用特殊字符解析java中的字符串
我试图以这样一种方式标记一个字符串 示例字符串用特殊字符解析java中的字符串,java,string,parsing,tokenize,Java,String,Parsing,Tokenize,我试图以这样一种方式标记一个字符串 示例字符串 Public Static void main(String[args]) 字符串标记器标记化 public static void main String args 但我想用这种方式来标记 public static void main ( String [ args ] ) 表示它还打印字符串移动到标记化的字符public string[]tokenise(string str){ public String[] tokenise(
Public Static void main(String[args])
字符串标记器标记化
public
static
void
main
String
args
但我想用这种方式来标记
public
static
void
main
(
String
[
args
]
)
表示它还打印字符串移动到标记化的字符public string[]tokenise(string str){
public String[] tokenise(String str){
String progress = "";
LinkedList<String> list = new LinkedList<String>();
for(int c = 0; c < str.length(); c++){
char ch = str.charAt(c);
// Skip next char if the current char is an escape character
if(ch == '\\'){
c++;
continue;
}
// If current char is to be tokenised, add progress and char to list
if(ch == ' ' || ch == '(' || ch == ')' || ch == '[' || ch == ']'){
if(!progress.equals("")) list.add(progress);
list.add(ch+"");
progress = "";
}else{
progress += ch;
}
}
String[] result = new String[list.size()];
for(int c = 0; c < result.length; c++) result[c] = list.get(c);
return result;
}
字符串progress=“”;
LinkedList=新建LinkedList();
对于(int c=0;cStringTokenizer
,而是使用regex。我知道了,给我一点时间,我会发布一个答案。您想创建词法分析吗?工作,但仅限于此示例,如果有\或/?会怎么样?谢谢,我添加了对escape ch的支持更好的是,我发布了一个解决方案,它可以处理所有不是字母的东西,想法?不?什么让你感到困惑?我现在重新阅读并理解了它,但是返回每个元素的数组或列表会更有用……哦,好吧,那样的话,我会继续工作。这就是为什么我要求思考的原因!:)
import java.util.Scanner;
import java.util.ArrayList;
public class SOQ17
{
public Scanner scan;
public String test;
public boolean check = true;
public SOQ17()
{
System.out.print("Enter your string.\n");
scan = new Scanner(System.in);
test = scan.nextLine();
for(int i = 0; i < test.length(); i++)
{
if((test.charAt(i) >= 'A' && test.charAt(i) <= 'Z') || (test.charAt(i) >= 'a' && test.charAt(i) <= 'z'))
{
System.out.print(test.charAt(i) + "");
check = true;
}
else
{
if(check)
{
System.out.println("");
}
System.out.println(test.charAt(i));
check = false;
}
}
}
public static void main(String[] args)
{
while(true)
{
SOQ17 soq = new SOQ17();
}
}
}