Вместо input.nextLine()
используйте input.next()
, что должно решить проблему.
Измененный код:
public static Scanner input = new Scanner(System.in);
public static void main(String[] args)
{
System.out.print("Insert a number: ");
int number = input.nextInt();
System.out.print("Text1: ");
String text1 = input.next();
System.out.print("Text2: ");
String text2 = input.next();
}
Вы можете установить культуру по умолчанию со следующим свойством:
CultureInfo.DefaultThreadCurrentCulture
Но это не будет работать в Android. Итак, для Android вам нужно настроить культуру каждый раз, когда действие возобновляется. Вы можете добавить базовую активность, например:
internal class MyBaseActivity : Activity
{
protected override void OnResume ()
{
base.OnResume ();
// Here you would read it from where ever.
var userSelectedCulture = new CultureInfo ("fr-FR");
Thread.CurrentThread.CurrentCulture = userSelectedCulture;
}
}
Найдено на форуме xamarin: https://forums.xamarin.com/discussion/9764/how-to-set-a-global -cultureinfo-для-ан-приложение
Я работаю с приложением Xamarin Forms
.
Настройка Культуры в классе App
сделала для меня трюк.
using System.Globalization;
using System.Threading;
private void SetCultureToUSEnglish()
{
CultureInfo englishUSCulture = new CultureInfo("en-US");
CultureInfo.DefaultThreadCurrentCulture = englishUSCulture;
}
Вы должны установить текущую культуру в своем приложении. Локализация работает очень хорошо. Вот как я это сделал:
public void SetLocale(CultureInfo ci)
{
Thread.CurrentThread.CurrentCulture = ci;
Thread.CurrentThread.CurrentUICulture = ci;
}
И здесь вы получаете культуру от устройства:
public CultureInfo GetCurrentCultureInfo()
{
var netLanguage = "en";
if (NSLocale.PreferredLanguages.Length > 0)
{
var pref = NSLocale.PreferredLanguages[0];
netLanguage = iOSToDotnetLanguage(pref);
}
// this gets called a lot - try/catch can be expensive so consider caching or something
CultureInfo ci = null;
try
{
ci = new CultureInfo(netLanguage);
}
catch (CultureNotFoundException e1)
{
}
}
private string iOSToDotnetLanguage(string iOSLanguage)
{
// Testing special cases..
}
Если вы используете проект PCL, используйте абстракцию. Использовать интерфейс в PCL и его реализацию в собственном проекте.
Вы можете увидеть больше здесь: https://docs.microsoft.com/en-us/xamarin/cross-platform/app-fundamentals / локализации
Я пытаюсь использовать подход Joehl, но это не сработало для меня. Я использовал этот подход
string cultureName = "es-US";
var locale = new Java.Util.Locale(cultureName);
Java.Util.Locale.Default = locale;
var config = new Android.Content.Res.Configuration { Locale = locale };
BaseContext.Resources.UpdateConfiguration(config, BaseContext.Resources.DisplayMetrics);
Также создал базовую активность
Найти ответ здесь:
изменение cultinfo на android с использованием xamarin и c #