我已经读过GWT,指定返回具体实现的方法,例如:
public ArrayList<String> getList();
Run Code Online (Sandbox Code Playgroud)
而不是通常首选的"抽象接口",例如:
public List<String> getList();
Run Code Online (Sandbox Code Playgroud)
结果在GWT产生编译JavaScript文件一个较小的,因为客户端(即JS)代码不必满足所有已知的接口的实现(在的例子中List,客户端代码必须能够处理LinkedList,ArrayList,Vector,等),因此它可以通过不编译未使用的实现来优化js.
我密切相关的问题是:
关于正则表达式机制的基本问题:
我有以下表达式:[10]*1[10]*.
这会匹配100吗?
我的推理:
第一个选项:[10]*匹配“100”然后到达字符串的末尾=> 不匹配。
第二个选项:[10]*被忽略并且表达式匹配。
我忘记了一些小事,还是这实际上取决于正则表达式引擎?
(我记得关于贪婪与不贪婪的一些事情,但我不确定这是否适用于这种情况)
我正在尝试使用正则表达式解决来自codingbat.com的问题.
我是新手,所以一步一步的解释将不胜感激.我可以相对容易地使用String方法解决这个问题,但我正在尝试使用正则表达式.
这是提示:给定一个字符串和一个非空字符串,在字符串中每次出现单词之前和之后返回由每个char组成的字符串.忽略在单词之前或之后没有字符的情况,如果字符位于两个单词之间,则可以包括两次char.
wordEnds("abcXY123XYijk", "XY") ? "c13i"
wordEnds("XY123XY", "XY") ? "13"
wordEnds("XY1XY", "XY") ? "11"
Run Code Online (Sandbox Code Playgroud)
等等
我的代码到目前为止:
String regex = ".?" + word+ ".?";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(str);
String newStr = "";
while(m.find())
newStr += m.group().replace(word, "");
return newStr;
Run Code Online (Sandbox Code Playgroud)
问题是当一行中有多个单词实例时,程序会错过单词前面的字符,因为m.find()会超出它.
例如:wordEnds("abc1xyz1i1j", "1")应该返回"cxziij",但我的方法返回"cxzij",而不是重复"i"
我将非常感谢一个非混乱的解决方案,并且可以解释我可以应用于其他一般正则表达式问题.
假设需要使用特定的通用接口,但这种情况不需要使用其中一个通用参数.
假设我需要一个Callable<T>(必须T从其call()方法返回一个),但在这种情况下我不需要返回结果,我只想提交一些代码ExecutorService来"做某事"
什么是该类型的最佳选择T?
replaceAll()交换相邻字符的正则表达式是什么?
例如,要转此:
abcdefg
Run Code Online (Sandbox Code Playgroud)
进入这个:
badcfeg
Run Code Online (Sandbox Code Playgroud) 所以,我正在尝试通过javamail和glassfish发送电子邮件:这是我的代码(我在这里找到它http://www.javasrilankansupport.com/2012/05/send-email-in-java-mail-api -using-gmail.html)
private Session m_Session;
private Message m_simpleMessage;
private InternetAddress m_fromAddress;
private InternetAddress m_toAddress;
private Properties m_properties;
@Override
public void sendMail(String mail) throws Exception {
try {
m_properties = new Properties();
m_properties.put("mail.smtp.host", "smtp.gmail.com");
m_properties.put("mail.smtp.socketFactory.port", "465");
m_properties.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
m_properties.put("mail.smtp.auth", "true");
m_properties.put("mail.smtp.port", "465");
m_properties.put("mail.debug", "false");
m_properties.put("mail.smtp.ssl.enable", "true");
m_Session = Session.getDefaultInstance(m_properties,new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("user@gmail.com","password"); // username and the password
}
});
m_simpleMessage = new MimeMessage(m_Session);
m_fromAddress = new InternetAddress("user@gmail.com");
m_toAddress = new InternetAddress(mail);
m_simpleMessage.setFrom(m_fromAddress);
m_simpleMessage.setRecipient(RecipientType.TO, m_toAddress); …Run Code Online (Sandbox Code Playgroud) 最近,我一直在使用XML解析器.这只是我的开始,我设法了解如何在java中使用DOM解析器类,DocumentBuilderFactory并DocumentBuilder解析XML文档.
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Run Code Online (Sandbox Code Playgroud)
我问自己是怎么一个抽象类,如DocumentBuilderFactory和DocumentBuilder,被允许实例化新实例?然后在另一个例子中我看到:
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.get(Calendar.DATE));
Run Code Online (Sandbox Code Playgroud)
getInstance()和newInstancce()方法是否创建了上述抽象类的实例?我是否遗漏了使用抽象类及其新对象的内容?
我很确定这个网站上还没有真正回答过.对于一劳永逸,最小的正则表达式匹配数字字符串,该字符串在32位有符号整数范围内-2147483648,范围为2147483647.
我必须使用正则表达式进行验证 - 这是我唯一可用的选项.
我试过了
\d{1,10}
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何将其限制在有效的数字范围内.
为了帮助开发正则表达式,它应该匹配:
-2147483648
-2099999999
-999999999
-1
0
1
999999999
2099999999
2147483647
Run Code Online (Sandbox Code Playgroud)
它不应该匹配:
-2147483649
-2200000000
-11111111111
2147483648
2200000000
11111111111
Run Code Online (Sandbox Code Playgroud)
我已经设置了一个在线实时演示(在rubular上),我的尝试和上面的测试用例.
注意:将接受有效的最短正则表达式.不考虑正则表达式的效率(除非有最短长度的平局).
如何删除字符串中的多个空格和换行符,但为每组空行保留至少一个空行.
例如,更改:
"This is
a string.
Something."
Run Code Online (Sandbox Code Playgroud)
至
"This is
a string.
Something."
Run Code Online (Sandbox Code Playgroud)
我正在使用.trim()从字符串的开头和结尾去除空格,但我找不到任何用于删除字符串中的多个空格和换行符的内容.
我想只保留一个空格和一个换行符.
说我有以下课程:
public class FormContainer {
@EJB
private ExternalDao externalDao; // uses dependency Injection
private final OrderForm orderForm;
private final List<OrderFormContent> formContents;
public FormContainer(OrderForm orderForm) {
this.orderForm = orderForm
initializeOrderForm();
}
private void initializeOrderForm() {
formContents = externalDao.getFormContents(orderForm);
// similar for any other properties
}
// getters & setters
}
Run Code Online (Sandbox Code Playgroud)
我正在使用这个类来保存我需要通过应用程序引用的所有字段.我仍在学习良好的设计和糟糕的设计实践,所以我想知道这个糟糕的设计是否初始化orderForm的属性.
如果是这样,怎么可以改进?
java ×7
regex ×4
string ×2
abstract ×1
class ×1
coding-style ×1
constructor ×1
generics ×1
glassfish-3 ×1
gmail ×1
gwt ×1
integer ×1
jakarta-mail ×1
oop ×1
size ×1
smtp ×1
validation ×1