我是新來的java(以前只與SQL一起工作),我試圖爲我的字符串變量設置長度限制。基本上我有一個只能有6個字符長的用戶名字段。Java字符串限制
我嘗試以下操作:
private String username (6);
我假定這是不正確的格式。有誰知道我可以用java正確做到這一點?
我是新來的java(以前只與SQL一起工作),我試圖爲我的字符串變量設置長度限制。基本上我有一個只能有6個字符長的用戶名字段。Java字符串限制
我嘗試以下操作:
private String username (6);
我假定這是不正確的格式。有誰知道我可以用java正確做到這一點?
你的建議是不正確的做你想做的事。嘗試使用:
private int stringLimit = 6;
// Take input from user
private String username = inputString.substring(0,stringLimit);
例如:
inputString = "joelspolsky";
private String username = inputString.substring(0,stringLimit);
// username is "joelsp"
你可以嘗試這樣的soemthing:以來自用戶的輸入,然後通過下面的函數驗證字符串。
String output ="";
public boolean set(String str, int limit){
if(str.length() <= limit){
output= str;
return true;
}
else
return false;
}
在這種情況下annotation
機制可能是有用的,如果當然,你知道這是什麼。
您可以創建自己的註釋,是這樣的:
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MaxLength {
int value();
}
而且使用它像:
@MaxLength(6)
private String username;
然後,你必須進行後處理的專用處理器後,這樣的對象,你必須手動創建。
沒有方法在Java限制字符串通過內置特性一定有限數。字符串是不可變的,並採用您在其構造函數中提供的值。您將需要手動編寫代碼來執行此操作。
使用length()
函數來確定字符串的長度,並且不允許長度大於6
if(username.length() > 6)
{
throw new RuntimeException("User name too long");
}
一個你必須是拋出一個異常,然後處理一下其他地方的選項越大。或者,您可以在遇到問題後立即向用戶顯示警報。
其他一些答案,聲稱「有沒有辦法在Java限制字符串,通過內置的功能一定有限數量的」,並建議那些滾動自己。但是,Java EE驗證API僅用於此目的。舉例:
import javax.validation.constraints.Size;
public class Person {
@Size(max = 6)
private String username;
}
有關如何使用驗證API的更多信息,請參閱this thread。 Hibernate validator是參考實現(usage)。
總之,註釋對象作爲@Valid時,在註釋進行驗證將被強制執行。
例如切割URL
if (getURLitem.length() >= 15) {
int stringLimit = 15;
final String smallURL = getURLitem.substring(0, stringLimit);
//show short string in textview...
TextView urlLink = (TextView) findViewById(R.id.url_link);
urlLink.setText(smallURL);
// Set On click listener and open URL below
...........
} else {
//show full string in textview...
TextView urlLink = (TextView) findViewById(R.id.url_link);
urlLink.setText(getURLitem);
// Set On click listener and open URL below
...........
}
我假設'getString'是一個變量名。讓我告訴你,這是一個非常糟糕的變量名稱,因爲它們的名字不應該以動詞開頭,它聽起來像是一種方法,可能會讓人困惑。請不要只發布代碼,試着解釋你提供的解決方案是什麼,請記住你在這裏幫助其他人:) –
請檢查我已經更新上面,我的錯誤之前.. – ivan
的長度這將炸燬如果字符串小於stringLimit短。 – user1944491