我有一系列英文和阿拉伯文字,应该以对齐的方式打印.
例如:
List<Character> ar = new ArrayList<Character>();
ar.add('?');
ar.add('?');
ar.add('?');
List<Character> en = new ArrayList<Character>();
en.add('a');
en.add('b');
en.add('c');
System.out.println("ArArray: " + ar);
System.out.println("EnArray: " + en);
Run Code Online (Sandbox Code Playgroud)
预期产出:
ArArray: [?, ?, ?] // <- I want characters to be printed in the order they were added to the list
EnArray: [a, b, c]
Run Code Online (Sandbox Code Playgroud)
实际产量:
ArArray: [?, ?, ?] // <- but they're printed in reverse order
EnArray: [a, b, c]
Run Code Online (Sandbox Code Playgroud)
有没有办法在从左到右的方向打印阿拉伯字符而不在输出之前明确地反转列表?
对于下面的语法,
grammar names;
fullname : TITLE? FIRST_NAME LAST_NAME;
TITLE : 'Mr.' | 'Ms.' | 'Mrs.' ;
FIRST_NAME : ('A'..'Z' | 'a'..'z')+ ;
LAST_NAME : ('A'..'Z' | 'a'..'z')+ ;
WHITESPACE : ( '\t' | ' ' | '\r' | '\n'| '\u000C' )+ -> skip ;
Run Code Online (Sandbox Code Playgroud)
在解析像"John Smith先生"这样的输入时,它会抛出异常
mismatched input 'Smith' expecting LAST_NAME
Run Code Online (Sandbox Code Playgroud)
是否可以配置ANTLR来处理这种情况?如果不可能,可以采用哪种替代方法来处理它?
请注意,它不仅限于这种简单的情况.